2011-04-08 118 views
2

我使用PHP 5.3.0,我使用WAMP服务器 功能就是这样我该如何解决“已过时:功能eregi()已过时”错误

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

我想'\ s'会匹配你的角色类中的每个角色。另外,'{0,}'最常用'*'表示:) – Phil 2011-04-08 03:35:37

+0

另外,'{1}'是多余的 – Phil 2011-04-08 03:44:41

回答

6

两个选项

  1. 请勿使用ereg*功能(使用PCRE suite代替)
  2. 禁用E_DEPRECATED错误报告。请参阅error_reporting()

由于整个POSIX Extended套件将在未来版本中删除,因此最佳选项是#1。

我无法理解人们是如何使用它的。它已被标记为要移除多年。更不用说这些预先弃用的“这些功能比较差!”警告甚至更久。

+1

有些人仍然使用'mysql_ *'。 :) – alex 2011-04-08 03:27:58

+0

'mysql_ *'似乎不被弃用。 – ceejayoz 2011-04-08 03:30:52

+1

@ceejayoz虽然这是真的,但有很多*更好的选项available – Phil 2011-04-08 03:32:22

4

preg_matchi修饰符一起使用,该修饰符指定要与您的正则表达式区分大小写的匹配项。

所以,你想:

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

1
error_reporting(E_ALL^E_DEPRECATED); 

如果必须使用eregi,但是......

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

也应该工作。

相关问题