我只想检查在以下位置完成的站点:*.test.com
和 *.test1.com
我尝试过:
if((preg_match('.\w+.test.com', $_SERVER['HTTP_ORIGIN'])) or (preg_match('.\w+.test1.com', $_SERVER['HTTP_ORIGIN']))){
}
最佳答案
对于初学者来说,您需要最可靠的方法来分解任何给定的 URL。为此,您可以使用 PHP 的 built-in parse_url
function :
$host = parse_url($url, PHP_URL_HOST);
然后,您想要检查它是否以 test.com
或 test1.com
结尾,您可以使用正则表达式来执行此操作:
if (preg_match('/test1?\.com$/', $host)) {
//match
}
正则表达式的工作原理如下:
test
:匹配字符串文字“test”1?
:匹配文字1
,但它是可选的,因此test
和test1
都会匹配\.
:文字点匹配com
:com 的字面匹配$
:字符串结尾。仅当字符串 ends 位于test.com
或test1.com
中时,表达式才会匹配。
警告一句:$_SERVER['HTTP_ORIGIN']
,事实上几乎没有一个 $_SERVER
值是可信的。您可以在此处阅读有关该主题的更多信息(+链接页面)
关于php - 只获取指定的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40180392/