在何处添加分隔符 - PHP

Where to add the delimiters - PHP

我研究这个已经有一段时间了。当我研究 PHP 警告时,我相信以下 PHP 代码需要在后半部分使用定界符才能使其正常工作。

这是代码,

$pee = preg_replace('!<p><!--(.*?)--></p>!ise', " '<!--' .  stripslashes(clean_pre(''))  . '-->' ", $pee);

这是我收到的警告,

Warning: preg_replace(): Unknown modifier '-'

我发现当我把后半部分代码换行时,就是警告所指的地方,所以它的后半部分需要修复语法。

破折号似乎被视为修饰符,因此显然使用定界符可以纠正这一点。我尝试添加分隔符,但都失败了,警告也没有解决。

我是 PHP 的新手,非常感谢您的帮助。

谢谢

如果您使用 ! 包围您的正则表达式,那么您还需要在模式中转义该字符:

!<p><!--(.*?)--></p>!ise
     ^ This needs escaping.

你应该可以使用这个:

$pee = preg_replace('!<p><\!--(.*?)--></p>!ise', " '<!--' .  stripslashes(clean_pre(''))  . '-->' ", $pee);

(或者选择不同的分隔符(/,等等)。

您收到该错误的原因是 -! 之后的第一个字符,因此 PHP 假设您将其作为第一个修饰符提供。

编辑:如@chris85 所述,e 修饰符不再是好的做法,请参阅此问题以获取有关更新代码的一些建议:Replace preg_replace() e modifier with preg_replace_callback