HomeMenu
Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

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:

ValueConstant
0PREG_NO_ERROR
1PREG_INTERNAL_ERROR
2PREG_BACKTRACK_LIMIT_ERROR
3PREG_RECURSION_LIMIT_ERROR
4PREG_BAD_UTF8_ERROR
5PREG_BAD_UTF8_OFFSET_ERROR
6PREG_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