Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:preg#u replace()[function.preg replace]:未知修饰符';d';_Php_Regex - Fatal编程技术网

Php 警告:preg#u replace()[function.preg replace]:未知修饰符';d';

Php 警告:preg#u replace()[function.preg replace]:未知修饰符';d';,php,regex,Php,Regex,我有一个函数,偶尔会发出一个错误: 警告:preg_replace()[function.preg replace]:未知修饰符“d” 通常情况下,情况并非如此。我不明白什么时候有,什么时候没有 我对regex几乎一无所知,因此非常感谢您的帮助 下面是函数: function textHighlight($haystack,$needle,$clr='yellow') { $haystack=preg_replace("/($needle)/i","<span style='bac

我有一个函数,偶尔会发出一个错误:

警告:preg_replace()[function.preg replace]:未知修饰符“d”

通常情况下,情况并非如此。我不明白什么时候有,什么时候没有

我对regex几乎一无所知,因此非常感谢您的帮助

下面是函数:

function textHighlight($haystack,$needle,$clr='yellow') {
    $haystack=preg_replace("/($needle)/i","<span style='background:$clr;'>\${1}</span>",$haystack);
    return $haystack;
}
function text突出显示($haystack、$needle、$clr='yellow')){
$haystack=preg\u replace(“/($needle)/i”、“\${1}”、$haystack);
返回$haystack;
}

谢谢。

在$pinder变量中可能有一个“/”字符。您可以用#…#

替换/。

您如何调用此函数
textphighlight
以及您传递了什么参数?这是完美的
textphighlight('somestring','d')
将复制所描述的错误,正如我所说的,它工作正常,直到它不工作为止。这个函数处理大约50个字符串,我通常会收到2到5个警告。谢谢!这起作用了。对于我未来的教育-在/s中包含字符串与在#s中包含字符串之间有什么功能上的区别吗?不,恐怕实际上没有。正则表达式引擎正变得混乱,因为$pinder中还有另一个“/”字符。我想你可以用“/\”转义每个字符(我不太确定)。明白了。非常感谢!