只获取指定的网址

Har*_*cla 2 php regex

我想只检查站点完成了:*.test.com*.test1.com 我想:

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

Eli*_*gem 6

对于初学者,您需要最可靠的方法来分解任何给定的URL.为此,您可以使用PHP的内置parse_url函数:

$host = parse_url($url, PHP_URL_HOST);
Run Code Online (Sandbox Code Playgroud)

然后,您要检查它是否以test.comtest1.com使用正则表达式结束:

if (preg_match('/test1?\.com$/', $host)) {
    //match
}
Run Code Online (Sandbox Code Playgroud)

正则表达式的工作方式如下:

  • test:匹配字符串文字"test"
  • 1?:匹配文字1,但它是可选的,所以两者testtest1会匹配
  • \.:一个字面点匹配
  • com:com的文字匹配
  • $:字符串结尾.表达式仅在字符串以或结尾时匹配.test.comtest1.com

只是一句警告:$_SERVER['HTTP_ORIGIN']实际上几乎没有任何$_SERVER值可信.你可以在这里阅读更多关于这个主题的内容(+链接页面)

HTTP_ORIGIN的安全性如何?