如何在php中为preg_replace编写模式

时间:2017-09-07 19:22:50

标签: php

我有一些带有一些&符号的字符串。 例如,符号“á”eqvivalency“& aacute;”在我的字符串中。 但我的功能是:

preg_replace("/(" . $q . ")+/i", "<strong>$1</strong>", $c)

如果变量$ q匹配任何符号“&amp; aacute;”它不再是一个&符号了,我得到了不可读的文字。

如何编写模式将忽略所有符号与&符号的部分? 或模式忽略“&amp;”之间的所有内容和“;”。

这是捷克语,我需要编写一个有效的函数来点亮搜索结果中的关键字......

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的解决方案

$str = html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|tilde|uml);~i', '$1', $string), ENT_QUOTES, 'UTF-8');
$res = preg_replace("/(" . $q . ")+/i", "<strong>$1</strong>", $str);