不推荐使用:不推荐使用函数ereg()

时间:2012-11-27 09:14:17

标签: php forms deprecated eregi ereg

  

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

我的联系表格是其他工作,但我继续得到以下信息 错误:

  

不推荐使用:函数ereg()在/ home /.....

中已弃用

我真的迷失了,但我认为这是需要调整的部分。

    if ( empty($_REQUEST['name']) ) {
    $pass = 1;
    $alert .= $emptyname;
} elseif ( ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] ) ) {    
    $pass = 1;
    $alert .= $alertname;
}
if ( empty($_REQUEST['email']) ) {
    $pass = 1;
    $alert .= $emptyemail;
} elseif ( !eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]   {2,3})$", $_REQUEST['email']) ) {
    $pass = 1;
    $alert .= $alertemail;
}
if ( empty($_REQUEST['message']) ) {
    $pass = 1;
    $alert .= $emptymessage;
} elseif ( preg_match( "[][{}()*+?\\^$|]", $_REQUEST['message'] ) ) {
    $pass = 1;
    $alert .= $alertmessage;
}

寻求解决方案将受到高度赞赏

3 个答案:

答案 0 :(得分:33)

您必须使用preg_match代替ereg,因为最后一个已被弃用。

取而代之的不是什么大事:

ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] )

将成为:

preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] )

P.S。当我将旧项目移植到PHP 5.3时,我不得不修改了一百多个文件,以避免手动修改我使用以下脚本为我做的事情:

function replaceEregWithPregMatch($path) {
    $content = file_get_contents($path);
    $content = preg_replace('/ereg\(("|\')(.+)(\"|\'),/',
                            "preg_match('/$2/',",
                            $content);
    file_put_contents($path, $content);
}

我希望它有所帮助。

答案 1 :(得分:1)

不推荐使用函数ereg(),不应再使用它。 documentation告诉您该怎么做(改为使用preg_match)。

答案 2 :(得分:0)

就像你说的那样 - 没什么大不了的,它就像一个魅力:

if ( empty($_REQUEST['name']) ) {
    $pass = 1;
    $alert .= $emptyname;
} elseif ( preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] ) ) {  
    $pass = 1;
    $alert .= $alertname;
}
if ( empty($_REQUEST['email']) ) {
    $pass = 1;
    $alert .= $emptyemail;
} elseif ( !preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$#i", $_REQUEST['email']) ) {
    $pass = 1;
    $alert .= $alertemail;
}
if ( empty($_REQUEST['message']) ) {
    $pass = 1;
    $alert .= $emptymessage;
} elseif ( preg_match( "/[][{}()*+?\\^$|]/", $_REQUEST['message'] ) ) {
    $pass = 1;
    $alert .= $alertmessage;
}

谢谢你们