Я ищу ключевые слова в строке через регулярное выражение. Он отлично работает для всех ключевых слов, кроме одного, который содержит в себе косую черту: «время / испускать».
Даже используя preg_quote($find,'/')
, который ускользает от него, я все равно получаю сообщение:
Unknown modifier 't' in /frontend.functions.php on line 71
Если я печатаю шаблон поиска, он показывает /time\\/emit/
. Без preg_quote он показывает /time/emit/
и оба возвращают одно и то же сообщение об ошибке.
Любая часть знаний была бы полезна.
Попробуйте начать и закончить регулярное выражение с помощью другого знака, чем /
Я лично использую `
Я видел людей, использующих #
Я думаю, что большинство символов хороши. Подробнее об этом можно узнать здесь: http://pl.php.net/manual/en/regexp.reference.delimiters.php
Как это:
preg_match('#time/emit#', $subject); // instead of /time/emit/
Иначе говоря: ваша переменная $find
должна содержать скорее # time / emit # than / time / emit /
похоже, что у вас что-то уже ускользает от него.
preg_quote('time/emit') // returns time\/emit preg_quote('time\/emit') // returns time\\/emit
как хак, который вы могли бы просто сделать:
preg_quote(stripslashes($find)) // will return time\/emit
бит кода?
«регулярное выражение» для этого конкретного термина должно выглядеть примерно так: «/ time / emit /». С набором ключевых слов может быть более эффективный метод, поэтому, видя, что вы делаете, будет хорошо.
это должно работать:
$a="Hello////////"; $b=str_replace($a,"//","/"); echo $b;