Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не срабатывает шаблон

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
cuprum
Отправлено: 19 Июня, 2010 - 22:23:45
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




есть код, выполняет поиск и замену
PHP:
скопировать код в буфер обмена
  1.  
  2. $out="somethinf else";//на что менять
  3. $in="something";//что искать
  4. $out=trim($out);
  5. $in=addslashes(trim($in));
  6. $pattern="#$in#";
  7. $result=preg_replace ($pattern, $out, $text, 1);//$text string from some file
  8. $result=stripslashes($result);
  9. echo $result;
  10.  

работает все ок.
Но если в $in есть хтмл теги(ссылка an example), то ничего не меняется.
WTF?
help pls
thx
 
 Top
JustUserR
Отправлено: 20 Июня, 2010 - 13:28:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




cuprum пишет:
Но если в $in есть хтмл теги(ссылка an example), то ничего не меняется
Если значение заменяемого шаблона подставляется динамически то он может содержать символы являющиеся управляемыми с точки зрения машины регулярных выражений - и соответственнно их нужно предварительно заэкранировать причем не функцией addslahes поскольку для нее часть символов является обычными - а заменой типа str_replace с условием замены "<" на "\\<" и ">" на "\\>" соответственно
Также проверьте кодировку входящих данных - поскольку строковые функции чувствительны к ней


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
cuprum
Отправлено: 20 Июня, 2010 - 15:29:14
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




данные приходят с post запроса.
Применил str_replace работает. благодарю.

Всегда считал, что addslashes нормально экранирует.
 
 Top
JustUserR
Отправлено: 21 Июня, 2010 - 12:40:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




cuprum пишет:
Применил str_replace работает. благодарю.
Всегда считал, что addslashes нормально экранирует.
На здоровье Функция addslashes нормально экраниует в плане управляющих символов в строках с двойными кавычками - то есть если у вас есть строка с определенным уровнем экранирования то данная функция добавляет еще один уровень - причем в отличие от шифрования подразумается что после того как некий парсер обработает строку и сделать правильную трактовку заэкранированных символов - то один уровень как раз будет снят С точки зрения обычной строки с двойными кавычкам символы типа точки и различных скобок и многие другие не являются управляющими - а вот с точки зрения регулярных выражений являются - именно поэтому нужно провоить экранировку с точки зрения регулярных выражений которая по отношению к обычным строкам является шифрованием


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB