Php 仅获取指定的url

Php 仅获取指定的url,php,regex,Php,Regex,我只想检查在以下位置完成的站点:*.test.com和*.test1.com 我试过: if((preg_match('.\w+.test.com', $_SERVER['HTTP_ORIGIN'])) or (preg_match('.\w+.test1.com', $_SERVER['HTTP_ORIGIN']))){ } 您可以使用str_pos。str_pos将在字符串、链接、url内搜索。。 文件 这里有一个小例子 if(strpos($_SERVER['HTTP_ORIGIN'],

我只想检查在以下位置完成的站点:
*.test.com
*.test1.com
我试过:

if((preg_match('.\w+.test.com', $_SERVER['HTTP_ORIGIN'])) or (preg_match('.\w+.test1.com', $_SERVER['HTTP_ORIGIN']))){
}

您可以使用str_pos。str_pos将在字符串、链接、url内搜索。。 文件

这里有一个小例子

if(strpos($_SERVER['HTTP_ORIGIN'], 'test.com') !== false) {
    echo "found it";
}

首先,您需要最可靠的方法来分解任何给定的url。为此,您可以使用PHP的:

然后,您要检查它是否以
test.com
test1.com
结尾,您可以使用正则表达式执行以下操作:

if (preg_match('/test1?\.com$/', $host)) {
    //match
}
正则表达式的工作原理如下:

  • test
    :匹配字符串文字“test”
  • 1?
    :匹配文本
    1
    ,但它是可选的,因此
    test
    test1
    都将匹配
  • \。
    :文字点匹配
  • com
    :com的文本匹配
  • $
    :字符串结束。仅当字符串
    test.com
    test1.com
    中结束时,表达式才会匹配

只是警告一句:
$\u SERVER['HTTP\u ORIGIN']
,事实上几乎所有的
$\u SERVER
值都不可信。您可以在此处阅读有关此主题的更多内容(+链接页面)


试试$urlcheck=expload(“test.com”,美元服务器['HTTP\u ORIGIN']);if(isset($urlcheck[1])//这意味着它有test.com,所以您的代码在这里。请同时在test.com和*.test1.comPHP中试用。HP需要为其正则表达式使用分隔符。那些正则表达式应该抛出错误。您没有检查
test1.com
。您试图编辑我的答案:请再次阅读问题:OP想要检查“test.com”和“test1.com”。除了未检查的
test1
。如果我拥有一个像“com.org”这样的域名,并且有一个“test”子域,那么您的检查将不会在
HTTP\u ORIGIN
being
test.com.org
if (preg_match('/test1?\.com$/', $host)) {
    //match
}