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

\uPCRE は、エスケープ シーケンスをサポートしていません。

つまり、正規表現が正しくありません。(uid=\d+)代わりに次のようなものを試してください。

コメントで述べたように (Mellamokb に感謝)、ここにソースがあります。

が何であるかを知りたい場合は、ここ\uを見ることができます

\u タイトルケースの次の文字。ありませんで [ ]。

于 2013-03-12T16:20:04.360 に答える
0

RegExpパターンは/区切り文字で区切る必要があります。(#または~)を使用することもできます。さらに、エスケープシーケンスはありません\u。あなたはこれを試してみたいかもしれません-

preg_replace('/\\uid=\d+/', 'uid=' . $uid, file_get_contents($file))
于 2013-03-12T16:31:30.470 に答える
0
file_put_contents($file,preg_replace('/uid=\d+/', 'uid=' . $uid, file_get_contents($file)));
于 2013-03-12T16:21:03.893 に答える