PHP preg_last_error_msg() 函数返回最后一次 PCRE 正则表达式执行的错误消息。
注意:此函数自 PHP 8.0.0 起可用。
语法
preg_last_error_msg()
参数
无需参数。
返回值
成功时返回错误消息,如果没有发生错误,则返回"PREG_NO_ERROR"。
示例:preg_last_error_msg() 示例
下面的示例显示了用法preg_last_error_msg() 函数。
<?php
$string = 'May 25, 2005';
//无效模式 - 缺少结束分隔符
$pattern = '/May';
$match = @preg_match($pattern, $string, $matches);
if(preg_last_error() !== PREG_NO_ERROR) {
//如果发生错误则显示
//错误信息
echo preg_last_error_msg();
} else if($match) {
//找到匹配项
echo $matches[0];
} else {
//未找到匹配项
echo 'No matches found';
}
?>
上述代码的输出将是:
Internal error
示例:回溯限制耗尽
再考虑一个示例,其中此函数为用于获取最后一个 PCRE 正则表达式执行错误消息,该消息是回溯限制耗尽。
<?php
preg_match('/(?:\D+|)*[!?]/', 'foobar foobar foobar');
if (preg_last_error() !== PREG_NO_ERROR) {
echo preg_last_error_msg();
}
?>
上述代码的输出将是:
Backtrack limit exhausted