PCRE 函数
在线手册:中文 英文
PHP手册

preg_last_error

(PHP 5 >= 5.2.0)

preg_last_error返回最后一个PCRE正则执行产生的错误代码

说明

int preg_last_error ( void )

返回最后一次PCRE正则执行的错误代码.

Example #1 preg_last_error() 示例

<?php

preg_match
('/(?:\D+|<\d+>)*[!?]/''foobar foobar foobar');

if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 
'Backtrack limit was exhausted!';
}

?>

以上例程会输出:

Backtrack limit was exhausted!

返回值

返回下面常量中的一个(查看它们自身的解释):


PCRE 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: 返回最后一个PCRE正则执行产生的错误代码

用户评论:

Omer (12-Feb-2011 05:22)

here's the code to check for all errors
<?php
if (preg_last_error() == PREG_NO_ERROR) {
    print
'There is no error.';
}
else if (
preg_last_error() == PREG_INTERNAL_ERROR) {
    print
'There is an internal error!';
}
else if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print
'Backtrack limit was exhausted!';
}
else if (
preg_last_error() == PREG_RECURSION_LIMIT_ERROR) {
    print
'Recursion limit was exhausted!';
}
else if (
preg_last_error() == PREG_BAD_UTF8_ERROR) {
    print
'Bad UTF8 error!';
}
else if (
preg_last_error() == PREG_BAD_UTF8_ERROR) {
    print
'Bad UTF8 offset error!';
}
?>

johan at bluemoonit dot net (24-May-2010 01:20)

The above function pcre_error_deocde [sic] is not correct - not all of the used constants are errors constants. For example, when the error is actually PREG_BAD_UTF8_ERROR, the function outputs the text for PREG_SPLIT_OFFSET_CAPTURE.