Function ereg_replace() is deprecated - How to clear this bug? [duplicate]

試著忘記壹切 提交于 2019-11-26 06:47:35

问题


This question already has an answer here:

  • How can I convert ereg expressions to preg in PHP? 4 answers

I have written following PHP code:

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

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

After running above code, it gives following warning,

Deprecated: Function ereg_replace() is deprecated

How can I resolve this warning.


回答1:


Switch to preg_replaceDocs and update the expression to use preg syntax (PCRE) instead of ereg syntax (POSIX) where there are differencesDocs (just as it says to do in the manual for ereg_replaceDocs).




回答2:


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

becomes

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

More example :

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

is changed to

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



回答3:


change the call to ereg_replace to use preg_replace instead




回答4:


http://php.net/ereg_replace says:

Note: As of PHP 5.3.0, the regex extension is deprecated in favor of the PCRE extension.

Thus, preg_replace is in every way better choice. Note there are some differences in pattern syntax though.




回答5:


IIRC they suggest using the preg_ functions instead (in this case, preg_replace).




回答6:


Here is more information regarding replacing ereg_replace with preg_replace



来源:https://stackoverflow.com/questions/3132844/function-ereg-replace-is-deprecated-how-to-clear-this-bug

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!