2009-10-08 98 views
0

我使用ereg方法驗證URL。這裏是我的代碼:使用ereg在PHP中驗證URL

function validationURL($URL) { 
    if (ereg("^(http://www|www)[.]([a-z,A-Z,0-9]+)([-,_])([a-z,A-Z,0-9]+)[.]([a-z,A-Z]){2,3}[.]?(([a-z,A-Z]){2,3})[/]?[~]?([/,a-z,A-Z,0-9]+)?$",$URL)){ 
     return true; 
    } else { 
     return false; 
    } 
} 


if ($website !="" && $website !=NULL) { 
    if (validationURL($website)){ 
     $websiteOk = true; 
    } else { 
     $errmsg = $errmsg . "URL Is Invalid.<br>"; 
     $websiteOk = false; 
    } 
} 

任何人都可以告訴我這段代碼有什麼問題。我測試了www.google.com.my,但它不起作用。

回答

5

不回答你的問題,也許,但你知道有一個更好的方式來做到這一點,因爲PHP5的?該函數被稱爲filter_var,您可以使用它來驗證URL和電子郵件地址等。例如:

$website = $_POST['postedInAForm_Maybe']; 
if (filter_var($website, FILTER_VALIDATE_URL)) { 
    echo "Yay!"; 
} else { 
    echo "Nah."; 
} 

您可以找到過濾器here

0

我同意Björn,但是如果你不能使用filter_var,那麼最好使用preg函數(Perl-Compatible Regular Expressions),因爲ereg(POSIX)函數現在被折舊了。

This blog post有一些非常好的REGEX示例。