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

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

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

 

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

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

тема: Не могу понять Warning
 
 автор: Deed   (24.07.2011 в 18:33)   письмо автору
 
 

Warning: preg_replace() [function.preg-replace]: No ending delimiter '/' found in Z:\home\klim.fu\www\resiev.php on line 112

Именно так ругается php на вот такую работающую регулярку:

<?php
$about
=preg_replace("/[\[\]`~\0<>]/","",$about1);
?>


Спасибо.

  Ответить  
 
 автор: f111   (24.07.2011 в 20:00)   письмо автору
 
   для: Deed   (24.07.2011 в 18:33)
 

а что регулярка должна делать?

  Ответить  
 
 автор: Deed   (24.07.2011 в 20:04)   письмо автору
 
   для: f111   (24.07.2011 в 20:00)
 

По идее, вырезать из строки указанные в квадратных скобках символы, в том числе - пресловутый NULL-bite \0. В тестовых прогах все ОК, но вот PHP 5.3 выдает приведенный выше Warning.

  Ответить  
 
 автор: f111   (24.07.2011 в 20:05)   письмо автору
 
   для: Deed   (24.07.2011 в 20:04)
 

preg_replace("/[\[\]`~0<>]/","",$about1);
экранирование у нуля надо убрать

http://codepad.org/CjBmioOR

видимо php не знаком с пресловутым NULL-bite \0 , либо его надо как нить по другому вырезать

  Ответить  
 
 автор: Deed   (24.07.2011 в 20:24)   письмо автору
 
   для: f111   (24.07.2011 в 20:05)
 

Спасибо за участие :) видел, что мешает именно эта "пресловутость"... Обойдемся без нее, тем более, форма будет доступна лишь владельцу сайта.

У меня еще один вопрос, если позволите.


<?php
if(preg_match("/^[\w\d+а-яА-Я-\s!\?]+$/i",$name)){
            
$name=$name;
        }
        else{
            
$_SESSION['error']="Недопустимый формат имени картины!!";
            
header("Location:".$_SERVER['HTTP_REFERER']); exit();
        }

?>


Что не так в ЭТОЙ регулярке? Она проверяет наличие в строке только перечисленных выше симовлов. Тестируешь ее - работает, а вот на локалке упорно не пропускает строки, которые НАЧИНАЮТСЯ С ДВУХ И БОЛЕЕ ЦИФР! Целый день бьюсь! Уже грешил на PHP и переустановил Денвер..
Скажите, в чем тут бзик-то, а???
Например, у человека есть картина "99 лет тому назад" - не пускает! А вот "33 дня" (я понимаю, тут пробел - один) - проходит. "333 богатыря" тоже блокирует...

  Ответить  
 
 автор: f111   (24.07.2011 в 20:52)   письмо автору
 
   для: Deed   (24.07.2011 в 20:24)
 

<?php
error_reporting
(E_ALL);
$name="sdvvs";
if(!
preg_match("/^[\w+а-яА-Я-\s!?]+$/i",$name)) //не удержался, и обкорнал чуток
{
    
$_SESSION['error']="Недопустимый формат имени картины!!";
    
header("Location:".$_SERVER['HTTP_REFERER']); exit();
}
?>

у меня всё работает, хз что предложить, по пробуйте у себя в скрипте флаг i убрать

  Ответить  
 
 автор: Deed   (24.07.2011 в 21:07)   письмо автору
 
   для: f111   (24.07.2011 в 20:52)
 

Ага, спасибо. Что-нибудь придумаем.

  Ответить  
 
 автор: Гость   (25.07.2011 в 07:04)   письмо автору
 
   для: Deed   (24.07.2011 в 21:07)
 

А какая у вас кодировка? utf-8? добавьте модификатор "u"

  Ответить  
 
 автор: Deed   (26.07.2011 в 07:58)   письмо автору
 
   для: Гость   (25.07.2011 в 07:04)
 

В том-то и дело, что windows-1251

  Ответить  
 
 автор: f111   (28.07.2011 в 00:51)   письмо автору
 
   для: Deed   (26.07.2011 в 07:58)
 

сегодня просматривая статью о регулярках в JS напоролся на нулевой байт или как вы его называете, увидев что "это" сразу появился ответ на ваш вопрос в первом посте
<?php
$about
=preg_replace("/[\[\]`~\\0<>]/","",$about1);
?> 
не забываем экранировать бэкслеши))), ошибку уже естественно не выдаёт.

  Ответить  
 
 автор: Deed   (28.07.2011 в 01:14)   письмо автору
 
   для: f111   (28.07.2011 в 00:51)
 

My oh my... Спасибище, добрый человек!

  Ответить  
Rambler's Top100
вверх

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