Funzione preg_last_error
La funzione preg_last_error restituisce il codice dell'ultimo errore,
verificatosi durante l'utilizzo delle funzioni per le espressioni regolari.
È utile per il debug delle espressioni regolari, quando funzioni
come preg_match o preg_replace restituiscono false.
La funzione non accetta parametri.
La funzione restituisce un codice di errore intero. Per comodità, è possibile confrontare il codice di errore con delle costanti speciali (vedi la tabella sottostante).
Sintassi
preg_last_error(): int;
Tabella con le costanti di errore
| Costante | Valore | Descrizione |
|---|---|---|
PREG_NO_ERROR |
0 | Nessun errore verificatosi |
PREG_INTERNAL_ERROR |
1 | Errore interno di PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Superato il limite di backtracking (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Superato il limite di ricorsione |
PREG_BAD_UTF8_ERROR |
4 | Dati UTF-8 non validi |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | L'offset non corrisponde all'inizio di un codice UTF-8 valido |
PREG_JIT_STACKLIMIT_ERROR |
6 | Superato il limite dello stack del compilatore JIT |
Esempio
Controlliamo l'errore dopo un'espressione regolare non valida:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Risultato dell'esecuzione del codice:
4
Esempio
Utilizzo con le costanti di errore PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Risultato dell'esecuzione del codice:
'Backtrack limit was exhausted'
Vedi anche
-
la funzione
preg_match,
che esegue una ricerca con un'espressione regolare -
la funzione
preg_replace,
che esegue una sostituzione con un'espressione regolare -
la funzione
preg_quote,
che escape i caratteri speciali nelle espressioni regolari