使用ereg在PHP中验证URL

Tal*_*kir 0 php

我正在使用ereg方法验证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;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我这段代码有什么问题.我测试了www.google.com.my但它没有用.

Bjö*_*örn 5

可能不是你问题的答案,但你知道从PHP5开始有更好的方法吗?该函数称为filter_var,您可以使用它来验证URL和电子邮件地址等.例:

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

你可以在这里找到过滤器.