目录

PHP preg_last_error() 函数

❮ PHP 正则表达式参考

示例

使用 preg_last_error() 处理错误:

<?php
$str = 'The regular expression is invalid.';
$pattern = '/invalid//';
$match = @preg_match($pattern, $str, $matches);

if($match === false) {
  // An error occurred
  $err = preg_last_error();
  if($err == PREG_INTERNAL_ERROR) {
    echo 'Invalid regular expression.';
  }
} else if($match) {
  // A match was found
  echo $matches[0];
} else {
  // No matches were found
  echo 'No matches found';
}
?>

定义和用法

这个preg_last_error()函数返回最近计算的正则表达式的错误代码。返回的值将匹配以下常量之一:

Constant Description
PREG_NO_ERROR No error occurred
PREG_INTERNAL_ERROR There was an error evaluating the expression
PREG_BACKTRACK_LIMIT_ERROR The number of backtracks needed to evaluate the expression exceeded the limit given in PHP's configuration
PREG_RECURSION_LIMIT_ERROR The recursion depth needed to evaluate the expression exceeded the limit given in PHP's configuration
PREG_BAD_UTF8_ERROR The input string contained invalid UTF-8 data
PREG_BAD_UTF8_OFFSET_ERROR During evaluation, a string offset did not point to the first character of a multibyte UTF-8 symbol
PREG_JIT_STACKLIMIT_ERROR The JIT compiler ran out of stack memory when trying to evaluate the expression

语法

preg_last_error()

技术细节

返回值: 返回最近计算的正则表达式的错误代码
PHP 版本: 5.2.0+

❮ PHP 正则表达式参考