我有一个数组,它的元素是路径,包含正斜杠和感叹号。
我需要将regex模式这样的数组注入到preg_match()
中
$url = 'example.com/path/to/!another';
$arr = ['path/to/!page', 'path/to/!another'];
$unescapedPattern = implode('|', $arr);
$escapedPattern = preg_quote($unescapedPattern, '/');
if(preg_match('/('.$escapedPattern.')/', $url)) {
echo 'The input url contains one of the paths in array!';
}
当然,由于preg_quote()
跳过了竖线,因此不会应用该模式
如何排除它的逃逸,或者如何用另一种方式解决问题?
1条答案
按热度按时间rhfm7lfc1#
您可以使用
确保使用
'/'
作为preg_quote
的第二个参数,因为您使用/
作为正则表达式分隔符字符。