已弃用:函数 eregi() 在 class.kValidate.php 文件中已弃用


Deprecated: Function eregi() is deprecated in class.kValidate.php file

已弃用:函数 eregi() 在/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php 第 107 行中被弃用

已弃用:函数 eregi() 在/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php 第 109 行中被弃用

已弃用:函数 eregi() 在/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php 第 110 行中被弃用

已弃用:函数 eregi() 在/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php 第 111 行中被弃用

已弃用:函数 ereg() 在第 92 行的/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php 中已弃用

下面是代码

function is_email($string) 
{
    $string = trim($string);
    $result = ereg(
        '^([A-Za-z0-9_!]|''-|''.)+'. 
        '@'.
        '(([A-Za-z0-9_]|''-)+''.)+'.
        '[A-Za-z]{2,4}$',
        $string
    ); //line 92
    return($result);
}
function is_url($urladdr)
{
    $regexp = "^(https?://)";
    $regexp .= "?(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?";
    $regexp .= "(([0-9]{1,3}'.){3}[0-9]{1,3}";
    $regexp .= "|";
    $regexp .= "([0-9a-z_!~*'()-]+'.)*";
    $regexp .= "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]'.";
    $regexp .= "[a-z]{2,6})";
    $regexp .= "(:[0-9]{1,4})?";
    $regexp .= "((/?)|";
    $regexp .= "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
    if (eregi( $regexp,$urladdr )) { // line 107
        if (!eregi( "^https?://",$urladdr )) {
            $urladdr = "http://".$urladdr; //line 109
        }
        if (!eregi( "^https?://.+/",$urladdr )) { // line 110
            $urladdr .= "/";
        }
        if ((eregi( "/[0-9a-z~_-]+$",$urladdr)) && (!eregi( "['?;&=+'$,#]",$urladdr))) {
            $urladdr .= "/";
        }
        return ($urladdr);
    } else  {
        return false;
    }
}

请。。。。此代码有效,但刷新后...它保存了...但是当我们单击"保存"按钮时,它会显示此警告,然后在刷新页面后它可以工作。表示直接保存设置

好吧,这个错误几乎说明了一切 - ereg()函数已被弃用,您应该将其替换为preg_match。

preg_match的模式需要分隔符。我建议()给他们。在结束分隔符之后,您可以为不区分大小写的匹配提供"i"之类的选项

function is_email($string) 
{
    $string = trim($string);
    $result = preg_match(
        '(
          ^([A-Za-z0-9_!]|''-|''.)+
          @
          (([A-Za-z0-9_]|''-)+''.)+
          [A-Za-z]{2,4}$
        )Dx',
        $string
    ); //line 92  
    return($result);
}  
function is_url($urladdr)
{
    $regexp = "(
      ^(https?://)
      ?(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?
      (([0-9]{1,3}'.){3}[0-9]{1,3}
      |
      ([0-9a-z_!~*'()-]+'.)*
      ([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]'.
      [a-z]{2,6})
      (:[0-9]{1,4})?
      ((/?)|
      (/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$
      )Dix";  
    if (preg_match( $regexp,$urladdr )) { // line 107
        if (!preg_match( "(^https?://)Di",$urladdr )) {
            $urladdr = "http://".$urladdr; //line 109
        }  
        if (!preg_match( "(^https?://.+/)Di",$urladdr )) { // line 110
            $urladdr .= "/";
        }  
        if ((preg_match( "(/[0-9a-z~_-]+$)Di",$urladdr)) && (!preg_match( "(['?;&=+'$,#])Di",$urladdr))) {
            $urladdr .= "/";
        }  
        return ($urladdr);
    } else  {
        return false;
    }
}

您可以使用字符"@"来避免警告(但不建议这样做):

$result = @ereg();

最好的选择是替换为函数 preg_match()。