я ищу ключевые слова в строке через регулярное выражение. Это хорошо работает для всех ключевых слов, кроме того, которое содержит наклонную черту вправо в нем: "время/испускать".
Даже использование 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 #, чем / 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 /'. С набором ключевых слов может быть более эффективный метод, поэтому было бы хорошо посмотреть, что вы делаете.