不推荐使用:函数eregi()是不推荐使用的联系表单

时间:2013-01-02 18:09:36

标签: php

  

可能重复:
  How can I convert ereg expressions to preg in PHP?

我有一个php联系表单,我在几个不同的网站上使用过。我试图在新网站上实现相同的,但我收到以下消息:

不推荐使用:第36行/home/content/58/10223058/html/contact-1.php弃用了函数eregi()

以下是我的代码中的第36行:

if(!eregi($string_exp,$name)) {
    $error_message .= 'The Name you entered does not appear to be valid.<br />';
  }

我确信这有一个简单的解决方法,但我是PHP的新手,不知道如何解决这个问题!

非常感谢任何帮助。三江源

2 个答案:

答案 0 :(得分:4)

1)这只是一个警告。尽管有警告,我猜测代码仍然有效。正确的吗?

2)您可以通过Google搜索“函数eregi()已弃用”来修复它。例如:

http://takien.com/513/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0.php

// Old
if(!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) {
    $msg = 'email is not valid';
}
else {
    $valid = true;
}

// New
if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) {
    $msg = 'email is not valid';
}
else {
    $valid = true;
}

完整的PHP在线文档在这里:

preg_match()的“手册页”在这里:

答案 1 :(得分:3)

在大多数情况下,您可以替换

if(!eregi($string_exp,$name)) {

if(!preg_match('/'.$string_exp.'/i',$name)) {

但并非总是如此 - 您必须检查模式($string_exp)。

但是,您可以通过将此消息放在eregi()调用之前的某个位置来禁用该消息:

error_reporting(error_reporting() & ~E_DEPRECATED);