По документам ,
preg_match () возвращает FALSE, если произошла ошибка.
проблема в том, что он также выдаст предупреждение.
Один из способов справиться с этим - подавить вывод сообщения об ошибке, перехватить возвращаемое значение и вывести ошибку, используя error_get_last()
, если оно было ложным.
Что-то вроде
$old_error = error_reporting(0); // Turn off error reporting
$match = preg_match(......);
if ($match === false)
{
$error = error_get_last();
echo $error["message"];
}
error_reporting($old_error); // Set error reporting to old level
Вам может не понадобиться бит сообщения об ошибках в производственной среде - это зависит от ваших настроек.