只获取指定的网址

时间:2016-10-21 15:26:34

标签: php regex

我只想查看已完成的网站:*.test.com*.test1.com 我试过了:

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

2 个答案:

答案 0 :(得分:6)

对于初学者,您需要最可靠的方法来分解任何给定的网址。为此,您可以使用PHP的built-in parse_url function

$host = parse_url($url, PHP_URL_HOST);

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

if (preg_match('/test1?\.com$/', $host)) {
    //match
}

正则表达式的工作原理如下:

  • test:匹配字符串文字“test”
  • 1?:匹配文字1,但它是可选的,因此testtest1都匹配
  • \.:文字点匹配
  • com:com的文字匹配
  • $:字符串结尾。只有在test.comtest1.com中字符串 结束 时,表达式才会匹配。

只是警告:$_SERVER['HTTP_ORIGIN'],实际上几乎没有$_SERVER值可信任。您可以在此处阅读有关此主题的更多信息(+链接页面)

How secure is HTTP_ORIGIN?

答案 1 :(得分:0)

你可以使用str_pos。 Str_pos将在字符串,链接,网址内搜索.. 文档link

这是一个小例子

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