preg_last_error
Description
The preg_last_error of PCRE for PHP returns the error code of the last PCRE regex execution.
Syntax
preg_last_error(): int
Return
Returns one of the following constants:
| Value | Constant |
|---|---|
| 0 | PREG_NO_ERROR |
| 1 | PREG_INTERNAL_ERROR |
| 2 | PREG_BACKTRACK_LIMIT_ERROR |
| 3 | PREG_RECURSION_LIMIT_ERROR |
| 4 | PREG_BAD_UTF8_ERROR |
| 5 | PREG_BAD_UTF8_OFFSET_ERROR |
| 6 | PREG_JIT_STACKLIMIT_ERROR |
Examples
1 · void
<? $pattern = '#(?:\D+|<\d+>)*[!?]#'; $subject = 'testing testing testing'; preg_match($pattern, $subject); $return = preg_last_error(); echo $return;
2
2 · constant · switch
<?
$pattern = '#(?:\D+|<\d+>)*[!?]#';
$subject = 'testing testing testing';
preg_match($pattern, $subject);
$return = preg_last_error();
switch($return)
{
case PREG_NO_ERROR:
echo "PREG_NO_ERROR";
break;
case PREG_INTERNAL_ERROR:
echo "PREG_INTERNAL_ERROR";
break;
case PREG_BACKTRACK_LIMIT_ERROR:
echo "PREG_BACKTRACK_LIMIT_ERROR";
break;
case PREG_RECURSION_LIMIT_ERROR:
echo "PREG_RECURSION_LIMIT_ERROR";
break;
case PREG_BAD_UTF8_ERROR:
echo "PREG_BAD_UTF8_ERROR";
break;
case PREG_BAD_UTF8_OFFSET_ERROR:
echo "PREG_BAD_UTF8_OFFSET_ERROR";
break;
case PREG_JIT_STACKLIMIT_ERROR:
echo "PREG_JIT_STACKLIMIT_ERROR";
break;
}
PREG_BACKTRACK_LIMIT_ERROR
3 · constant · foreach
<?
$pattern = '#(?:\D+|<\d+>)*[!?]#';
$subject = 'testing testing testing';
preg_match($pattern, $subject);
$return = preg_last_error();
$pcre = get_defined_constants(true)["pcre"];
$pcre_error = [];
foreach($pcre as $key => $value)
{
if(preg_match('#ERROR#', $key))
{
$pcre_error[$value] = $key;
}
}
echo $pcre_error[$return];
PREG_BACKTRACK_LIMIT_ERROR