2009-10-08 100 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示例。