2016-06-01 4 views
1

で使用することはできません私は、PHP 5.5に問題がある:私はこのコードを使用する場合:警告:preg_replace_callback():修飾子/ eは置換コールバック

$source = preg_replace('/&#(\d+);/me', "utf8_encode(chr(\\1))", $source); 
$source = preg_replace('/&#x([a-f0-9]+);/mei', "utf8_encode(chr(0x\\1))", $source); 

リターンエラー推奨されていません

:にpreg_replaceを()/ Eの修飾子が廃止され、Iはpreg_replace_callbackで使用

代わりpreg_replace_callback使用:

警告::preg_replace_callback():

$source = preg_replace_callback('/&#(\d+);/me', function($m) { return utf8_encode(chr($m[1])); },$source); 
$source = preg_replace_callback('/&#x([a-f0-9]+);/mei', function($m) { return utf8_encode(chr("0x".$m[1])); },$source); 

それは警告を返す/ E修飾子は、これを達成するための正しいコードになりますどのような置換コールバック

で使用することはできませんか?

+4

その 'e''(修飾子)'を正規表現から削除します。つまり、あなたのコードは 'preg_replace_callback( '/&##(\ d +);/m'、function($ m){return utf8_encode(chr($ m [1]);}、$ source);' –

+0

あなたのサポートのおかげで、それは働いている。 –

答えて

0

Narendrasingh Sisodia以下のコメントを投稿しました。それが答えていたはずですので、私はコミュニティウィキとしてそれをここに追加してい:

問題は、preg_replace_callback()機能と一緒にあなたの正規表現パターンの中に使用していたことe(モディファイ)です。あなたの正規表現からそのe(修飾子)を削除します。

ようなので、単にあなたのコードが見えます:問題はあなたが `preg_replace_callback()` function.Removeと一緒に `regex`パターン内に使用していたことをその` `e`(モディファイ)`である

preg_replace_callback('/&#(\d+);/m', function($m) { return utf8_encode(chr($m[1])); },$source); 
関連する問題