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相比,后者在正则的前后分别增加了两个”/”符号,不能缺少。
Tips:此问题在php5.2之前版本不会出现。
*********************************************************************
在php5.3环境下运行oscommerce,常常会出现Deprecated: Function ereg() is deprecated in...和Deprecated: Function ereg_replace() is deprecated in...这些类型的报错提示。
其原因在于:php5.3以上的版本不支持ereg()函数,而是使用preg_match()函数;不支持ereg_replace()函数,而使用preg_replace()函数。
解决方法:将不支持的函数修改为支持的函数即可。
例如:
Deprecated: Function eregi() is deprecated in D:\www\oscommerce\catalog\includes\classes\language.php on line 87
那么,将87行的
if(eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i])
改为:
if(preg_match('/^(' . $value . ')(;q=[0-9]\\.[0-9])?$/i', $this->browser_languages[$i])
再例如:
Deprecated: Function ereg_replace() is deprecated in C:\wamp\www\includes\functions\general.php on line 61
那么,将61行的
$string = ereg_replace(' +', ' ', trim($string));
改为:
$string = preg_replace('{ +}', ' ', trim($string));
如此类推,其它类似的错误也可以按照上面两个函数的语法来做修改。
*********************************************************************
Function ereg() is deprecated Error 错误对策
错误:
Deprecated: Function ereg() is deprecated in ……
解决方法一:
退回去用php5.2。(众人皆赞道:果是好法子!)
解决方法二:
继续用php5.3,但是修改devel/devel.modul的460行:
if ($errno & (E_ALL ^ E_NOTICE)) {
改为
if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {
把丫deprecated错误给忽略掉。(众人皆又赞道:果……果……果是好法子!)
解决方法三:
动程序鸟,把ereg换成preg_match,ereg_replace也需得换成preg_replace。只得注意的是
ereg(’^[0-9]‘ 需修改成 preg_match(’/^[0-9]/‘
无敌//必须加,哈哈。(众人皆俯首赞道:王道也!)
ereg_replace是php5.3中废弃的标签,不推进使用了。解决方法很简单,就是将dede\config.php文件的第二行替换成
define(’DEDEADMIN’, preg_replace(”/[\/\\\\]{1,}/”, ‘/’, dirname(__FILE__) ) );这样就不会报错了。遇到同样问题的朋友们不妨试一试。
分享到:
相关推荐
主要介绍了php5.3提示Function ereg() is deprecated Error问题解决方法,主要是由于php5.3对ereg()函数升级造成的,使用时只要对其规则和函数进行简单的修改即可,需要的朋友可以参考下
Deprecated: Function ereg() is deprecated in…和Deprecated: Function ereg_replace() is deprecated in…这些类型的报错提示。 其原因在于:php5.3以上的版本不支持ereg()函数,而是使用preg_match()函数...
PHP 5.3 ereg() "Function ereg() is deprecated Error" ereg -> preg_match PHP 5.3 ereg_replace() "Function ereg_replace() is deprecated Error" ereg_replace -> preg_replace "Delimiter ...
邮件发送smtp类ereg等函数替换版,适用php5.3以上环境
in production environments and one that is recommended to be used in ; development environments. ; php.ini-production contains settings which hold security, performance and ; best practices at its ...
主要介绍了php中正则替换函数ereg_replace用法,以实例形式分析了ereg_replace函数进行正则替换时的用法,非常具有实用价值,需要的朋友可以参考下
首先来看看 POSIX 风格正则表达式的两个主要函数: ereg 函数:(正则表达式匹配) 格式:int ereg ( string pattern, string string [, array ®s] ) 注意:使用 Perl 兼容正则表达式语法的 preg_match() 函数...
PHP下ereg实现匹配ip的正则
主要介绍了php使用ereg验证文件上传的方法,是非常简单实用的正则验证技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
PHP 7 Ereg 垫片可以包含在旧 PHP 5 项目中的简单垫片,以通过 preg 提供 ereg 功能。 使您升级到 PHP 7 的生活更加轻松。
function ubb($Text) { $Text=htmlspecialchars($Text); $Text=ereg_replace(“\r\n”,” ”,$Text); $Text=ereg_replace(“\r”,” ”,$Text); $Text=nl2br($Text); $Text=preg_replace(“/\\t/is”,...
?php require("config.... ##### 检查用户是否存在 ##### function is_user_exits($name) { $name=trim($name); $name=ereg_replace("’","‘",$name); $name=htmlspecialchars($name); $SQL="SELECT name FROM user W
function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); 改变变量类型 在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你...
复制代码 代码如下: /** +———————————————————- * UBB 解析 +———————————————————- * @return string +———————————————————- */ function ubb($Text) { $...
代码很简单,使用了正则表达式,大家参考使用吧复制代码 代码如下:function is_md5($password) { return preg_match(“/^[a-z0-9]{32}$/”, $password);} 您可能感兴趣的文章:php使用ereg验证文件上传的方法PHP...
很多PHP程序员都知道,从PHP5.3开始加入了一个新的报错级别DEPRECATED,即将废弃/过期。下面我们来一个个版本梳理一下。 在php5.3被放弃的函数有: call_user_method() //使用 call_user_func() 替代 call_user_...