Функция preg_last_error
La función preg_last_error devuelve el código del último error,
ocurrido durante el trabajo con funciones de expresiones regulares.
Es útil para depurar expresiones regulares cuando funciones
como preg_match o preg_replace devuelven false.
La función no acepta parámetros.
La función devuelve un código de error entero. Para mayor comodidad, se puede comparar el código de error con constantes especiales (ver tabla a continuación).
Sintaxis
preg_last_error(): int;
Tabla con constantes de error
| Constante | Valor | Descripción |
|---|---|---|
PREG_NO_ERROR |
0 | No ocurrió ningún error |
PREG_INTERNAL_ERROR |
1 | Error interno de PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Se excedió el límite de retroceso (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Se excedió el límite de recursión |
PREG_BAD_UTF8_ERROR |
4 | Datos UTF-8 incorrectos |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | El desplazamiento no corresponde al inicio de un código UTF-8 válido |
PREG_JIT_STACKLIMIT_ERROR |
6 | Se excedió el límite de pila del compilador JIT |
Ejemplo
Comprobemos el error después de una expresión regular incorrecta:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Resultado de la ejecución del código:
4
Ejemplo
Uso con constantes de error de PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Resultado de la ejecución del código:
'Backtrack limit was exhausted'
Ver también
-
la función
preg_match,
que realiza una búsqueda con expresión regular -
la función
preg_replace,
que realiza un reemplazo con expresión regular -
la función
preg_quote,
que escapa caracteres especiales en expresiones regulares