Я думаю, что это сложнее, чем кажется. Если мы ищем foo bar
, тогда
<p>bla bla foo bar bla</p>
будет конвертировано в
<p>bla <span class="highlight">foo bar</span> bla bla</p>
а как насчет особых случаев? Возможно, foo bar
соответствует тегу HTML:
<p>bla bla <span class="foo bar">foo bar</span> bla</p>
, который будет заменен на
<p>bla <span class="<span class="highlight">foo bar</span>">foo bar</span> bla bla</p>
Прав ли я с этим? Я не занимался этой проблемой, но я бы порекомендовал вам проверить документы CakePHP (да, я знаю, что вы не используете framework--) в помощнике Text, метод highlight()
, который правильно обрабатывает теги HTML. Посмотрите на источник, сделайте снимок, и если он работает на вас, скопируйте его.