php - 只获取指定的url

标签 php regex

我只想检查在以下位置完成的站点:*.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.comtest1.com 结尾,您可以使用正则表达式来执行此操作:

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

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

  • test:匹配字符串文字“test”
  • 1?:匹配文字 1,但它是可选的,因此 testtest1 都会匹配
  • \.:文字点匹配
  • com:com 的字面匹配
  • $:字符串结尾。仅当字符串 ends 位于 test.comtest1.com 中时,表达式才会匹配。
<小时/>

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

How secure is HTTP_ORIGIN?

关于php - 只获取指定的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40180392/

相关文章:

php - MongoDB 服务器在 Google Compute Engine 上崩溃

regex-lookarounds - regexp - 如果不包含另一个字符串,则匹配整个字符串

Javascript 正则表达式替换 HTML 标签

Javascript 正则表达式 - 电话号码

regex - grep当前目录下所有.h和.c文件中的关键字但排除两个目录

php - Cakephp 3.0 中的自定义查询?

php - 使用 PHP 在 Linux Debian 中合并 MP3 文件

php - PDO PHP Mysql 在特定查询上速度慢

php - 如何在 PHP 中禁用 Curl 调试输出

正则表达式获取 data.table 中包含值的所有行?