验证正则表达式而不抛出警告

时间:2013-02-21 20:51:35

标签: php regex validation warnings

我正在尝试验证字符串是否包含正则表达式,并且它在PHP中是有效的。通常,我会按以下方式执行此操作

<?php
@preg_match($string, '') !== false;

这会生成一个警告,这很好,因为我们使用@来抑制它。但是,当我们使用set_error_handler来捕获错误时会出现问题,因为尽管有@个抑制器,处理程序仍会被触发。

我想做一些类似于提供的代码,而不会发出警告。

投掷的警告是:

preg_match(): Delimiter must not be alphanumeric or backslash

1 个答案:

答案 0 :(得分:3)

只需在错误处理程序中添加:

function user_error_handler($severity, $msg, $filename, $linenum, $content) {
    if (0 == (error_reporting() & $severity)) return;
    ...
}

在这种情况下,由于@运算符,error_reporting()将返回0.