The error is:
PHP Warning: preg_match(): Compilation failed: missing ) at offset 16 in /home/siteraja/public_html/ar/wp-content/plugins/hide_my_wp/lib/mute-screamer/libraries/IDS/Monitor.php on line 312 And here's the code at line 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;
}
}
You are using a variable to initialize a regex pattern. Without knowing what characters there may be inside that string, you cannot be sure the regex syntax will be correct. To eliminate this risk, use preg_quote
that will escape (=add \
) in front of each special character. So, replace
$reg = '/'.str_replace('%','[A-Za-z0-9_-]*', str_replace('.','\.',$exception)).'/i';
with
$reg = '/'.str_replace('%','[A-Za-z0-9_-]*', preg_quote($exception)).'/i';
Also please note you only declare $matches = array();
, but you are not using it, but that is perhaps just because you do not show the whole code.