function pcre_error_decode() {
$constants = get_defined_constants(true);
$pcre_errors = array_flip($constants[pcre]);
if(array_key_exists(preg_last_error(),$pcre_errors))
echo 'pcre error : '.$pcre_errors[preg_last_error()];
else
echo 'unknown pcre error';
}
preg_last_error
(PHP 5 >= 5.2.0)
preg_last_error — Returns the error code of the last PCRE regex execution
Description
int preg_last_error
( void
)
Returns the error code of the last PCRE regex execution.
Example #1 preg_last_error() example
<?php
preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');
if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
print 'Backtrack limit was exhausted!';
}
?>
The above example will output:
Backtrack limit was exhausted!
Return Values
Returns one of the following constants (explained on their own page):
- PREG_NO_ERROR
- PREG_INTERNAL_ERROR
- PREG_BACKTRACK_LIMIT_ERROR (see also pcre.backtrack_limit)
- PREG_RECURSION_LIMIT_ERROR (see also pcre.recursion_limit)
- PREG_BAD_UTF8_ERROR
- PREG_BAD_UTF8_OFFSET_ERROR (since PHP 5.3.0)
preg_last_error
eleg
18-Mar-2010 03:30
18-Mar-2010 03:30
luky37
06-Jan-2009 08:44
06-Jan-2009 08:44
the following function decodes this message for you:
<?php
function pcre_error_deocde() {
switch (preg_last_error()) {
case PREG_NO_ERROR:
print "pcre_error: PREG_NO_ERROR!\n";
break;
case PREG_INTERNAL_ERROR:
print "pcre_error: PREG_INTERNAL_ERROR!\n";
break;
case PREG_BACKTRACK_LIMIT_ERROR:
print "pcre_error: PREG_BACKTRACK_LIMIT_ERROR!\n";
break;
case PREG_RECURSION_LIMIT_ERROR:
print "pcre_error: PREG_RECURSION_LIMIT_ERROR!\n";
break;
case PREG_BAD_UTF8_ERROR:
print "pcre_error: PREG_BAD_UTF8_ERROR!\n";
break;
case PREG_BAD_UTF8_OFFSET_ERROR:
print "pcre_error: PREG_BAD_UTF8_OFFSET_ERROR!\n";
break;
}
}
?>
