URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7607
[ Назад ]

Исходное сообщение
"Подскажите как правильно экранировать в переменной PHP"

Отправлено rex111 , 21-Сен-12 01:16 
Добрый день!
Столкнулся с проблемой при написании регулярных выражений.
есть переменная
$pattern="";
В процессе запроса она получает данные, например
http://sait.com http://sait1.com или http://sait2.com/index.php?dhdhdh
И есть переменная
$sait
которая содержит список из 20 сайтов
$sait="http//sait4.comhttp:sait3.comhttp://sait2.com/index.php?dhdhdh..."
Переменную $pattern мне нужно использовать как шаблон регулярного выражения, дабы проверить есть ли в переменной $sait
данные совпадающие с данными переменной $pattern.
делаю так
<?
$pattern=addslashes($pattern);
if (preg_match("$pattern",$sait))
  {
  echo Ok;
  }
?>
Мне выбивает ошибку
Warning: preg_match() [function.preg-match]: Unknown modifier '/'
Я так понял что данные в переменной шаблона не экранируются
Подскажите пожалуйста как побороть проблему?

Содержание

Сообщения в этом обсуждении
"Подскажите как правильно экранировать в переменной PHP"
Отправлено Анонимус42 , 21-Сен-12 09:34 
Читаем http://www.php.net/ до просветления.

"Подскажите как правильно экранировать в переменной PHP"
Отправлено rex111 , 21-Сен-12 13:17 
> Читаем http://www.php.net/ до просветления.

Спасибо за ёмкий ответ, но хотелось бы конкретики.


"Подскажите как правильно экранировать в переменной PHP"
Отправлено rex111 , 21-Сен-12 13:42 
Все разобрался.
У меня в переменной выражение заключалось в слэши
/http://./
Я заменил крайние слэши на ~ только уже не в переменной а в функции

preg_match("~$pattern~",$prim)
И заработало!