函数ereg_replace()已弃用 - 如何清除此错误?

时间:2010-06-28 13:41:45

标签: php deprecated ereg

我写了以下PHP代码:

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

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

运行上面的代码后,它会发出以下警告,

  

不推荐使用:不推荐使用函数ereg_replace()

如何解决此警告。

6 个答案:

答案 0 :(得分:41)

切换到preg_replaceDocs并更新表达式以使用preg语法(PCRE)而不是ereg语法(POSIX)where there are differencesDocs(正如它在ereg_replaceDocs手册中所说的那样)

答案 1 :(得分:31)

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 );

答案 2 :(得分:6)

将对ereg_replace的调用更改为使用preg_replace而不是

答案 3 :(得分:4)

http://php.net/ereg_replace说:

  

注意:自PHP 5.3.0起,不推荐使用正则表达式扩展而使用PCRE extension

因此,preg_replace在各方面都是更好的选择。请注意,模式语法有一些差异。

答案 4 :(得分:3)

IIRC他们建议使用preg_函数(在本例中为preg_replace)。

答案 5 :(得分:3)

Here是关于用preg_replace替换ereg_replace的更多信息