php 多个引用域不起作用

php 多个引用域不起作用

使用单个域作为引用域代码工作正常

<?php $referrer = $_SERVER['HTTP_REFERER']; if (preg_match('~site1\\.com$~', parse_url($referrer, PHP_URL_HOST)))

但当我添加更多网站作为引用域时什么也没有发生只有空白页

<?php $referrer = $_SERVER['HTTP_REFERER']; if (preg_match('~site1\\.com$~'| '~site2\\.com$~' | '~site3\\.com$~', parse_url($referrer, PHP_URL_HOST)))

我如何添加更多网站作为引用域

答案1

我会在一个且仅一个正则表达式中使用 | 运算符(我不确定 php 中是否允许使用管道的多个正则表达式):

<?php  $referrer = $_SERVER['HTTP_REFERER']; if (preg_match('~(site1\.com|site2\.com|site3\.com)$~', parse_url($referrer, PHP_URL_HOST)))

另外,我不明白为什么要转义两次点字符。

相关内容