2013-11-05 128 views
-4

推薦使用:功能eregi()被棄用/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php在線107上推薦使用:功能eregi()在class.kValidate.php已棄用文件

棄用:功能eregi()在/home/hjlhvqyy/public_html/fastseoindia/klib/class.kValidate.php被棄用上線109

推薦使用:功能eregi()中已過時的/ home/hjlhvqyy /的public_html/fastseoindia/klib/class.kValidate.php線路110上

推薦使用:功能eregi()被棄用/豪我/ 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_!~*'().&=+$%-][email protected])?"; 
    $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; 
    } 
} 

請....這段代碼的工作,但刷新後...它保存......但是當我們點擊保存按鈕,它顯示此警告後,再刷新它的工作....意味着直接保存設置

+1

你的問題是什麼? – sectus

+0

改爲使用preg_match。 – Robert

+0

它曾在線109,110和111,但是當我用的preg_match設置上線92()它給錯誤的郵件ID無效,線路107給它的URL無效... plz幫助 – saiyyedfardeen

回答

1

好,誤差幾乎說明了一切 - 功能ereg()已被棄用,你應該preg_match替換它。

+0

謝謝它線109,110和111 工作,但是當我把它放在與的preg_match(92行),它給出了郵件ID錯誤是無效的和線107它給的網址是無效的...... plz幫助 – saiyyedfardeen

+0

如果你運行PHP版本5.2或更高版本,爲什麼不使用http://php.net/manual/en/function.filter-var.php?這就是我想要的,否則我暫時無法用正則表達式來幫助你,對不起。 – Pankucins

+0

'「我的朋友我不是開發者'」。那麼你可能需要僱用一個。 – vascowhite

1

爲的preg_match的模式需要分隔符。我爲他們建議()。之後,結束分隔符,你可以提供選項,如「我」爲不區分大小寫的匹配

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_!~*'().&=+$%-][email protected])? 
     (([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; 
    } 
} 
0

您可以使用字符「@」,以避免該警告(但它不推薦):

$result = @ereg(); 

的最好的選擇是用函數preg_match()替換。

相關問題