2012-06-26 35 views
-1

我有一個代碼域查找,但它的工作原理,但有一個不贊成使用的區域。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; 
    } 

我如何修正這個錯誤? 請大家幫忙!

+0

您可以用'preg_match'。 – Leri

+0

這個錯誤意味着ereg函數不再被維護,並且可能會在未來的版本中完全從PHP中刪除。這是警告你,你需要面向未來驗證你的代碼。如果您查看eregi的PHP手冊頁,它將列出一些建議,以便如何執行此操作。 – GordonM

回答

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

Yeaj,這有效,但我來到另一個錯誤, if(eregi($ this-> ext ['。'。$ domain_domain] [1],$ f_result) ){ \t \t \t \t return true; \t \t \t}; 我試圖將eregi替換爲preg_match,但它表示:preg_match()[function.preg-match]:分隔符不能是字母數字或反斜槓 – leojarina

+0

如果您使用\ /?轉義/ – 2012-06-26 09:34:03

+0

怎麼樣?我不太瞭解這種類型的功能。 – leojarina

1

代替eregi的,你應該使用preg_match

+0

他們有相同的語法? – leojarina

+0

檢查鏈接,還有更多的例子。 –

+2

如果有疑問,可以隨時查看[手冊](http://www.php.net/manual/en/funcref.php)。如果你想找[eregi()](http://php.net/manual/en/function.eregi.php),你會看到使用什麼,最終爲什麼不推薦使用。保存** LOT **的時間和其他資源 – Havelock