在何处添加分隔符 - 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
我研究这个已经有一段时间了。当我研究 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