问题
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