我想查看一个网址,看看它是否是Google网址。
我有这个功能
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
)我收到错误!
答案 0 :(得分:4)
当然,因为你的正则表达式还没准备好处理www.
尝试
function isValidURL($url)
{
return preg_match('|^http(s)?://(www\.)?google\.com|i', $url);
}
答案 1 :(得分:0)
如果您要支持谷歌子域名,请尝试:
preg_match('/^https?:\/\/(.+\.)*google\.com(\/.*)?$/is', $url)
答案 2 :(得分: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");