eregi()返回已弃用

时间:2012-06-26 09:19:19

标签: php function deprecated eregi

我有一个域查找代码,但它有效,但有一个不推荐使用的区域。

这是我的代码:


    if (eregi('^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$',$domain) != 1){
        $error = 'Invalid domain (Letters, numbers and hypens only) ('.$domain.')';
        return false;
    }

如何修复错误? 请帮忙!

3 个答案:

答案 0 :(得分:3)

  

注意:

     

从PHP 5.3.0开始,不推荐使用正则表达式扩展而使用PCRE extension。调用此函数将发出E_DEPRECATED通知。有关转换为PCRE的帮助,请参阅list of differences

     

http://php.net/eregi

答案 1 :(得分:1)

您应该使用preg_match

而不是eregi

答案 2 :(得分:1)

改变这个:

if (eregi('^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$',$domain) != 1){
    $error = 'Invalid domain (Letters, numbers and hypens only) ('.$domain.')';
    return false;
}

到此:

if (preg_match('/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$/i',$domain) != 1){
    $error = 'Invalid domain (Letters, numbers and hypens only) ('.$domain.')';
    return false;
}