Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Фильтр недопустимых символов
 
 автор: toosia   (23.03.2006 в 16:03)   письмо автору
 
 

Есть строка. Нужно проверить ее на наличие запрещенных символов. Например "№;%:?*()+_ итд... если встречаются, то заменить их на Х.

Покопалась в книжках нашла str_replace("СЮДА МОЖНО КАК ТО МАССИВ ЗАГНАТЬ?","X",$str);

   
 
 автор: Shorr Kan   (23.03.2006 в 16:07)   письмо автору
 
   для: toosia   (23.03.2006 в 16:03)
 

С версии PHP 4.0.5, любой аргумент str_replace() может быть массивом.

   
 
 автор: Artemy   (23.03.2006 в 16:10)   письмо автору
 
   для: toosia   (23.03.2006 в 16:03)
 

Есть еще один вариант, проверять регулярными выражениями. Но тот способ что Вы предложили лучше, так как, он будет быстрей работать.

   
 
 автор: kasmanaft   (23.03.2006 в 16:43)   письмо автору
 
   для: Artemy   (23.03.2006 в 16:10)
 

если использовать массив, то возможно и не будет быстрее... точно не скажу :)
но я бы выбрал рег выражение... и проверял бы не на наличие запрещенных символов, а уничтожал все, кроме разрешенных...
пример:
$str = eregi_replace ("[^0-9a-zа-я]","",$str);

этот код уничтожит все кроме цифр и букв...

   
 
 автор: toosia   (23.03.2006 в 17:57)   письмо автору
 
   для: kasmanaft   (23.03.2006 в 16:43)
 

Да, этот вариант с Ереги_Реплейс я рассматривала, но есть еще и "слова". Нужно и их убрать.

Получится что то типа такого?
$arr = array(...);
str_replace("$arr","X",$str);

ЗЫ: str_replace("[0-9]","X",$str); не работает у меня почему то :)

   
 
 автор: Trianon   (23.03.2006 в 18:07)   письмо автору
 
   для: toosia   (23.03.2006 в 17:57)
 

str_replace как раз для слов
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

   
 
 автор: kasmanaft   (23.03.2006 в 18:09)   письмо автору
 
   для: toosia   (23.03.2006 в 17:57)
 

а str_replace("[0-9]","X",$str); не работает потому что [0-9] - это рег. выражение... а для str_replace это просто строчка.. которую он будет заменять (если конечно сумеет найти :))

а чтоб заработало нужно использовать не str_replace а ereg_replace... этим мы заменим все цифры на 'X'

   
 
 автор: toosia   (23.03.2006 в 18:46)   письмо автору
 
   для: kasmanaft   (23.03.2006 в 18:09)
 

ВСЕМ СПАСИБО!!!

все получилось, все заработало :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования