preg replace — preg_replace не заменяет специальные символы в строке переполнения стека

$value['keyword']='P|$$';<br>
$keyword = preg_quote($value['keyword'], '/');<br>
$question = "verying P|$$ quedon";<br>
echo $abc =  preg_replace( "/\b($keyword)\b/i",'<span style="color:red">$1</span>',$question);<br>

Я хочу соответствующее ключевое слово строки в красном цвете

1

Решение

Граница слова после $ требует, чтобы слово char появилось сразу после него, так что здесь нет замены.

Вам необходимо заменить границы слова однозначными границами, определенными с помощью (?<!\w) а также (?!\w) поиск обходных путей, которые не будут соответствовать, если ключевым словам предшествует или сопровождается символами слова:

$value['keyword']='P|$$';
$keyword = preg_quote($value['keyword'], '/');
$question = "verying P|$$ quedon";
echo $abc =  preg_replace( "/(?<!\w)($keyword)(?!\w)/i",'<span style="color:red">$1</span>',$question);

Увидеть PHP демо

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector