0

我想检查一个网址,看看它是否是谷歌网址。

我有这个功能

function isValidURL($url)
{
    return preg_match('|^http(s)?://google.com|i', $url);
}

如果我尝试

if ( isValidURL('http://google.com/') ){
    echo 'yes its google url';
}

它工作正常。但如果我尝试

if ( isValidURL('http://www.google.com/') ){
    echo 'yes its google url';
}

(和www)我得到一个错误!

4

3 回答 3

4

当然,因为你的正则表达式还没有准备好处理www.

尝试

function isValidURL($url)
{
    return preg_match('|^http(s)?://(www\.)?google\.com|i', $url);
}
于 2012-05-14T17:25:56.230 回答
0

如果您要支持 googles 子域,请尝试:

preg_match('/^https?:\/\/(.+\.)*google\.com(\/.*)?$/is', $url)
于 2012-05-14T17:36:13.027 回答
0

我喜欢使用 PHP 的 parse_url 函数来分析 url。它返回一个包含 URL 各部分的数组。这样您就可以确保您检查的是正确的部分,并且它不会被 https 或查询字符串抛出。

function isValidUrl($url, $domain_to_check){
       $url = parse_url($url);
       if (strstr($url['host'], $domain_to_search))
            return TRUE;
       return FALSE;
    }

用法:

isValidUrl("http://www.google.com/q=google.com", "google.com");

于 2012-07-03T13:01:45.910 回答