我如何检查给定网址是否在某个预定域内,例如用户注册api请求:
http://domain.com
然后他提出了一个请求:
http://domain.com/script.ext?var=foo //this should validate true
http://example.com/script.ext?var=foo //this should validate false
http://www.domain.com/script.ext?var=foo //this should validate true also
提前致谢
答案 0 :(得分:13)
使用parse_url()
:
if ( 'domain.com' == parse_url( $url, PHP_URL_HOST ) )
{
// do something awesome
}
答案 1 :(得分:1)
我不确定我是否正确理解您的问题,但如果您想查看请求源自何处,可以使用http引用中的“http referer”字段。 (http://en.wikipedia.org/wiki/HTTP_referer)
我不是很擅长php,但我认为你可以使用像$ _SERVER ['HTTP_REFERER']这样的东西来获取价值。该值是自动设置的,因此您只需要阅读它。
让我们通过点击“www.domain.com/referer.php”页面上的链接来调用“www.domain.com/page.php”页面,然后该请求将包含referer字段“http: //www.domain.com/referer.php“当您在”www.domain.com/page.php“中阅读$ _SERVER ['HTTP_REFERER']时。
如果您通过直接在浏览器中输入“www.domain.com/page.php”来申请“www.domain.com/page.php”,则会获得referer = null,如果您点击www.anotherdomain.com上指向“www.domain”的链接.com / page.php“你会得到referer = http://www.anotherdomain.com。
然后,您只需要将此值的域部分与您允许的域/域进行比较。
答案 2 :(得分:0)
也许您可以查看parse_url功能。