如何解决" Deprecated: Function eregi() is deprecated"错误



我使用PHP 5.3.0和我使用wamp服务器函数是这样的

eregi("^[ frtn]{0,}(SELECT){1}(.+)$",$this->ss_last_query)  
eregi("^[ frtn]{0,}(UPDATE|INSERT|DELETE){1}(.+)$",$this->ss_last_query)

两个选项

  1. 不要使用ereg*函数(使用PCRE套件代替)
  2. 禁用E_DEPRECATED错误报告。参见error_reporting()

最好的选择是#1,因为整个POSIX扩展套件将在未来的版本中被删除。

我不明白为什么人们还在用这个。它已经被标记了很多年了。更不用提早被弃用的"这些函数是次等的!"警告,这个警告出现的时间甚至更长。

使用preg_matchi修饰符,它指定您希望与regex匹配不区分大小写。

所以你想:

preg_match("/regexhere/i", $str);

error_reporting(E_ALL ^ E_DEPRECATED);

如果你必须使用eregi,但是…

preg_match("/^[ frtn]{0,}(UPDATE|INSERT|DELETE){1}(.+)$/is", $this->ss_last_query)

相关内容

最新更新