错误是:
PHP警告:preg_match():编译失败:缺失)在/home/siteraja/public_html/ar/wp-content/plugins/hide_my_wp/lib/mute-screamer/libraries/IDS/Monitor.php上的偏移量16处第312行 这是第227行的代码:
// check if this field is part of the exceptions
if (is_array($this->exceptions)) {
foreach($this->exceptions as $exception) {
$matches = array();
$reg = '/'.str_replace('%','[A-Za-z0-9_-]*', str_replace('.','\.',$exception)).'/i';
if (preg_match($reg, $key))
return false;
}
}
答案 0 :(得分:0)
您正在使用变量初始化正则表达式模式。在不知道该字符串中可能包含哪些字符的情况下,您无法确定正则表达式语法是否正确。要消除此风险,请使用将在每个特殊字符前面转义({add preg_quote
)的\
。所以,替换
$reg = '/'.str_replace('%','[A-Za-z0-9_-]*', str_replace('.','\.',$exception)).'/i';
与
$reg = '/'.str_replace('%','[A-Za-z0-9_-]*', preg_quote($exception)).'/i';
另请注意,您只声明$matches = array();
,但您没有使用它,但这可能只是因为您没有显示整个代码。