我有一个网站,其中包含一个搜索框,允许用户输入一个模式,然后根据大字符串进行检查,以查看这些字符串中是否存在用户指定模式的匹配项。这是使用PHP函数preg_match()
完成的。
但是,当用户输入无效模式时会出现问题,例如导致错误的模式:
preg_match()[function.preg-match]:未知的修饰符。
搜索功能需要能够处理preg_match()
方法引发的任何错误,并在屏幕上显示一般模式无效消息。我已经在网上查了但是我找不到一个能抓住任何错误preg_match()
可以抛出的方法,任何人都有任何想法?
答案 0 :(得分:2)
举一个简单的例子,设置错误处理程序并抛出Exception
或ErrorException
:
function exception_error_handler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");
然后尝试/ catch:
try {
preg_match('/.*/hello', 'hello');
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
捕获异常:preg_match():未知修饰符'h'
答案 1 :(得分:1)
尝试:preg_last_error()详细信息页面: http://php.net/manual/en/function.preg-last-error.php