1

警告的含义是什么?

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 版本。我试图用谷歌搜索解决方法,但找不到任何东西。

4

3 回答 3

5

PCRE 不支持\uespace 序列。

换句话说,您的正则表达式不正确。尝试类似的东西(uid=\d+)

正如评论中所说(感谢 Mellamokb),这里是源代码

如果你想知道什么是\u,你可以看这里

\u 大写下一个字符。不在 [ ] 中。

于 2013-03-12T16:20:04.360 回答
0
file_put_contents($file,preg_replace('/uid=\d+/', 'uid=' . $uid, file_get_contents($file)));
于 2013-03-12T16:21:03.893 回答
0

RegExp 模式应以/分隔符为界,您也可以使用 (#~)。而且没有转义序列\u。你可能想试试这个 -

preg_replace('/\\uid=\d+/', 'uid=' . $uid, file_get_contents($file))
于 2013-03-12T16:31:30.470 回答