Php 已弃用:函数ereg()已弃用

Php 已弃用:函数ereg()已弃用,php,forms,deprecated,eregi,ereg,Php,Forms,Deprecated,Eregi,Ereg,可能重复: 我的联系方式正在运行,但我一直得到以下信息 错误: 已弃用:函数ereg()在/home/…中已弃用 我真的迷路了,但我想这是需要调整的部分 if ( empty($_REQUEST['name']) ) { $pass = 1; $alert .= $emptyname; } elseif ( ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] ) ) { $pass = 1; $alert .

可能重复:

我的联系方式正在运行,但我一直得到以下信息 错误:

已弃用:函数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;
}
如能找到解决方案,将不胜感激。

函数
ereg()
已被弃用,不应再使用。告诉您要做什么(改为使用
preg\u match

您必须使用而不是,因为最后一个已弃用

替换它并不是什么大事:

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

preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] )
p、 在将旧项目移植到PHP5.3时,为了避免手动修改,我不得不修改了100多个文件,我使用了以下脚本:

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

我希望它能帮上忙。

就像你说的-没什么大不了的,它就像一个符咒:

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;
}
谢谢大家

注意,
preg\u match
中有。你可能不是它的主人吧?只是好奇。