Συνάρτηση preg_last_error
Η συνάρτηση preg_last_error επιστρέφει τον κωδικό του τελευταίου σφάλματος,
που προέκυψε κατά την εργασία με συναρτήσεις για κανονικές εκφράσεις.
Αυτό είναι χρήσιμο για τον εντοπισμό σφαλμάτων σε κανονικές εκφράσεις, όταν συναρτήσεις
όπως η preg_match ή η preg_replace επιστρέφουν false.
Η συνάρτηση δεν δέχεται παραμέτρους.
Η συνάρτηση επιστρέφει έναν ακέραιο κωδικό σφάλματος. Για ευκολία, μπορείτε να συγκρίνετε τον κωδικό σφάλματος με ειδικές σταθερές (βλ. πίνακα παρακάτω).
Σύνταξη
preg_last_error(): int;
Πίνακας με σταθερές σφαλμάτων
| Σταθερά | Τιμή | Περιγραφή |
|---|---|---|
PREG_NO_ERROR |
0 | Δεν προέκυψαν σφάλματα |
PREG_INTERNAL_ERROR |
1 | Εσωτερικό σφάλμα PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Υπέρβαση ορίου οπισθοδρόμησης (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Υπέρβαση ορίου αναδρομής |
PREG_BAD_UTF8_ERROR |
4 | Εσφαλμένα δεδομένα UTF-8 |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Η μετατόπιση δεν αντιστοιχεί στην αρχή ενός έγκυρου κώδικα UTF-8 |
PREG_JIT_STACKLIMIT_ERROR |
6 | Υπέρβαση ορίου στοίβας του JIT compiler |
Παράδειγμα
Έλεγχος σφάλματος μετά από μια εσφαλμένη κανονική έκφραση:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Αποτέλεσμα εκτέλεσης κώδικα:
4
Παράδειγμα
Χρήση με σταθερές σφαλμάτων PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Backtrack limit was exhausted'
Δείτε επίσης
-
τη συνάρτηση
preg_match,
που εκτελεί αναζήτηση με βάση μια κανονική έκφραση -
τη συνάρτηση
preg_replace,
που εκτελεί αντικατάσταση με βάση μια κανονική έκφραση -
τη συνάρτηση
preg_quote,
που αποδιαφυγώνει ειδικούς χαρακτήρες σε κανονικές εκφράσεις