正文 1030字数 82,586阅读

Deprecated: Function ereg() is deprecated in 解决方案

PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”。
问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来就加了个
preg_match

此问题解决办法很简单,在ereg前加个过滤提示信息符号即可:把ereg()变成@ereg()。这样屏蔽了提示信息,但根本问题还是没有解决,php在5.2版本以前ereg都使用正常,在5.3以后,就要用preg_match来代替ereg。
所以就需要变成这样,
原来:ereg("^[0-9]*$",$page)变成:preg_match("/^[0-9]*$/",$page)
特别提醒:posix与perl的很明显的表达区别就是是否加斜杠,所以与ereg相比,后者在正则的前后分别增加了两个”/”符号,不能缺少。


安装DEDECMS出现Deprecated: Function ereg_replace() is deprecated in 的原因

安装DEDECMS出现Deprecated: Function ereg_replace() is deprecated in 的原因是服务器PHP环境使用了PHP5.3乃至更高的PHP版本,

目前DEDE中有很多地方的正则函数都用的ereg_replace,而这个函数现在在PHP5.3中已经被废止了。

Deprecated: Function ereg_replace() is deprecated in 的解决办法:
在:dede目录找到config.php,在第二行,把
define('DEDEADMIN', ereg_replace("[/\\]{1,}", '/', dirname(__FILE__) ) );
换成
define('DEDEADMIN', preg_replace("/[\/\\\\]{1,}/",'/', dirname(__FILE__) ) );
即可。
preg_replace

就这样轻松解决了DEDECMS安装时遇到的Deprecated: Function ereg_replace() is deprecated in问题。