谁能解释这个警告?

时间:2013-03-12 16:18:07

标签: php

警告的含义是什么?

Warning: preg_replace() [function.preg-replace]: Compilation failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 in

这是由这个功能触发的:

file_put_contents($file,preg_replace('(\uid=\d+)', 'uid=' . $uid, file_get_contents($file)));

即这种模式:

'(\uid=\d+)'

它在本地工作,但不在线,这意味着它可能是我主机的PHP版本。我试图google一个解决方法,但找不到任何东西。

3 个答案:

答案 0 :(得分:5)

PCRE不支持\u espace序列。

换句话说,你的正则表达式是不正确的。请尝试使用(uid=\d+)之类的内容。

如评论中所述(感谢Mellamokb),这里是source

如果您想知道\u是什么,可以查看here

  

\ u标题下一个字符。不在[]。

答案 1 :(得分:0)

file_put_contents($file,preg_replace('/uid=\d+/', 'uid=' . $uid, file_get_contents($file)));

答案 2 :(得分:0)

RegExp模式应该由/分隔符限制,您也可以使用(#~)。此外,没有转义序列\u。你可能想试试这个 -

preg_replace('/\\uid=\d+/', 'uid=' . $uid, file_get_contents($file))