php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错

(编辑:jimmy 日期: 2026/1/13 浏览:2)

在php5.3环境下运行,常常会出现

 Deprecated: Function ereg() is deprecated in...和Deprecated: Function ereg_replace() is deprecated in...这些类型的报错提示。

  其原因在于:php5.3以上的版本不支持ereg()函数,而是使用preg_match()函数;不支持ereg_replace()函数,而使用preg_replace()函数。

  解决方法:将不支持的函数修改为支持的函数即可。  

      例如

 复制代码 代码如下:
 if(eregi('^('value', $value)

  改为:

 复制代码 代码如下:
 if(preg_match('/value/', $value)  

  再例如:

  复制代码 代码如下:
$string = ereg_replace(' value', ' ', trim($string));

  改为:

复制代码 代码如下:
  $string = preg_replace('{ value}', ' ', trim($string));

解决Deprecated: Assigning the return value of new by reference is deprecated in报错

因为我们现在php是5.3的原因,在php5.3之中可以直接用”=”,而之前因为在本地上测试都是5.3以下的php环境用的是”=&”符号。

在 5.3版本之后已经不允许在程序中使用”=&”符号。如果你的网站出现了Deprecated: Assigning the return value of new by reference is deprecated in 错误,别着急,先定位到出错的文件,查找下是不是在程序中使用了”=&”,发现使用了”=&”符号,去掉‘&'符号之后程序运行 正常。

问题:Deprecated: Function set_magic_quotes_runtime() is deprecated in

导致这个提示的原因是在PHP5.3后此特性(set_magic_quotes_runtime())已经关闭。

而且在PHP6中已经完全移除此特性。

你可以注释或者删除掉出错的行,或者是在set_magic_quotes_runtime()前面加@符号

一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?