32

我编写了以下 PHP 代码:

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

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

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

已弃用:函数 ereg_replace() 已弃用

我该如何解决这个警告。

4

6 回答 6

43

切换到preg_replaceDocs并更新表达式以使用 preg 语法 (PCRE) 而不是 ereg 语法 (POSIX) ,其中存在差异Docs(正如它在ereg_replaceDocs手册中所说的那样)。

于 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

更改对 ereg_replace 的调用以改用preg_replace

于 2010-06-28T13:44:19.467 回答
4

http://php.net/ereg_replace说:

注意:从 PHP 5.3.0 开始,不推荐使用 regex 扩展,取而代之的是PCRE 扩展

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

于 2010-06-28T13:44:29.823 回答
3

IIRC 他们建议改用这些preg_函数(在这种情况下,preg_replace)。

于 2010-06-28T13:43:23.040 回答
3

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

于 2010-06-28T13:44:47.473 回答