-4

非推奨: 関数 eregi() は、107 行目の /home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php で非推奨です

非推奨: 関数 eregi() は、109 行目の /home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php で非推奨です

非推奨: 関数 eregi() は、/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php の 110 行目で非推奨です

非推奨: 関数 eregi() は、/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php の 111 行目で非推奨です

非推奨: 関数 ereg() は、/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php 行 92 で非推奨です

以下はコードです

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;
    }
}

お願いします....このコードは機能しますが、更新後に...保存しました...しかし、保存ボタンをクリックすると、この警告が表示され、ページを更新した後に機能します....設定を直接保存することを意味します

4

3 に答える 3

1

まあ、エラーはほとんどすべてを物語っています-関数は非推奨になっているため、 preg_matchereg()に置き換える必要があります。

于 2013-11-05T07:27:48.127 に答える
1

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;
    }
}
于 2013-11-05T09:04:58.530 に答える
0

文字 "@" を使用して警告を回避できます (ただし、お勧めしません)。

$result = @ereg();

最良のオプションは、関数 preg_match() に置き換えることです。

于 2013-11-05T09:18:02.870 に答える