php – 检查输入的URL是否来自某个域
发布时间:2020-05-26 16:01:52 所属栏目:PHP 来源:互联网
导读:我有一个用户可以输入URL的字段.我需要检查该网址是否来自某个域,在本例中为google.com. 我试过这个,但它不适用于所有情况(我在下面列出): if(strstr(parse_url($link, PHP_URL_HOST), google.com) { // continue } http://www.google.com/blah – 工作 http
|
我有一个用户可以输入URL的字段.我需要检查该网址是否来自某个域,在本例中为google.com. 我试过这个,但它不适用于所有情况(我在下面列出): if(strstr(parse_url($link,PHP_URL_HOST),'google.com') { // continue }
> http://www.google.com/blah – 工作 没有正则表达式有没有办法做到这一点?如果没有,怎么办呢? 谢谢. parse_url需要有效的网址且google.com/blah无效(截至
PHP 5.3.3) – 因此无法使用.作为解决方法,您可以附加http(如果尚不存在),然后检查域.
使用以下功能: function checkRootDomain($url)
{
if (!preg_match("~^(?:f|ht)tps?://~i",$url)) {
$url = "http://" . $url;
}
$domain = implode('.',array_slice(explode('.',parse_url($url,PHP_URL_HOST)),-2));
if ($domain == 'google.com') {
return True;
} else {
return False;
}
}
测试用例: var_dump(checkRootDomain('http://www.google.com/blah'));
var_dump(checkRootDomain('https://www.google.com/blah '));
var_dump(checkRootDomain('google.com/blah'));
var_dump(checkRootDomain('www.google.com/blah '));
结果: bool(true) bool(true) bool(true) bool(true) 这是我自己的答案here的修改版本. 希望这可以帮助! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
