32

私は次のPHPコードを書きました:

$input="menu=1&type=0&";

print $input."<hr>".ereg_replace('/&/', ':::', $input);

上記のコードを実行すると、次の警告が表示されます。

非推奨:関数ereg_replace()は非推奨です

この警告を解決するにはどうすればよいですか。

4

6 に答える 6

43

preg_replaceドキュメントに切り替えて、ドキュメントの違いがある場合は、ereg構文(POSIX)ではなくpreg構文(PCRE)を使用するように式を更新します(ereg_replaceドキュメントのマニュアルに記載されているとおり)。

于 2010-06-28T13:43:15.630 に答える
34
print $input."<hr>".ereg_replace('/&/', ':::', $input);

になります

print $input."<hr>".preg_replace('/&/', ':::', $input);

その他の例:

$mytext = ereg_replace('[^A-Za-z0-9_]', '', $mytext );

に変更されます

$mytext = preg_replace('/[^A-Za-z0-9_]/', '', $mytext );
于 2011-08-18T05:42:49.833 に答える
6

代わりにpreg_replaceを使用するようにereg_replaceへの呼び出しを変更します

于 2010-06-28T13:44:19.467 に答える
4

http://php.net/ereg_replaceのコメント

注:PHP 5.3.0以降、正規表現拡張機能は廃止され、PCRE拡張機能が優先されます。

したがって、preg_replaceはあらゆる点でより良い選択です。ただし、パターン構文にはいくつかの違いがあることに注意してください。

于 2010-06-28T13:44:29.823 に答える
3

IIRCは、preg_代わりに関数を使用することを提案しています(この場合preg_replace)。

于 2010-06-28T13:43:23.040 に答える
3

ereg_replaceをpreg_replaceに置き換える方法の詳細は次のとおりです

于 2010-06-28T13:44:47.473 に答える