here's the code to check for all errors
<?php
if (preg_last_error() == PREG_NO_ERROR) {
print 'There is no error.';
}
else if (preg_last_error() == PREG_INTERNAL_ERROR) {
print 'There is an internal error!';
}
else if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
print 'Backtrack limit was exhausted!';
}
else if (preg_last_error() == PREG_RECURSION_LIMIT_ERROR) {
print 'Recursion limit was exhausted!';
}
else if (preg_last_error() == PREG_BAD_UTF8_ERROR) {
print 'Bad UTF8 error!';
}
else if (preg_last_error() == PREG_BAD_UTF8_ERROR) {
print 'Bad UTF8 offset error!';
}
?>
preg_last_error
(PHP 5 >= 5.2.0)
preg_last_error — Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
Beschreibung
int preg_last_error
( void
)
Liefert den Fehlercode der letzten PCRE RegEx-Auswertung.
Beispiel #1 preg_last_error() Beispiel
<?php
preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');
if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
print 'Das Backtrack-Limit wurde erreicht!';
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Das Backtrack-Limit wurde erreicht!
Rückgabewerte
Diese Funktion liefert eine der folgenden Konstanten:
PREG_NO_ERRORPREG_INTERNAL_ERRORPREG_BACKTRACK_LIMIT_ERROR(siehe auch pcre.backtrack_limit)PREG_RECURSION_LIMIT_ERROR(siehe auch pcre.recursion_limit)PREG_BAD_UTF8_ERRORPREG_BAD_UTF8_OFFSET_ERROR(ab PHP 5.3.0)
Omer
12-Feb-2011 10:22
johan at bluemoonit dot net
24-May-2010 07:20
The above function pcre_error_deocde [sic] is not correct - not all of the used constants are errors constants. For example, when the error is actually PREG_BAD_UTF8_ERROR, the function outputs the text for PREG_SPLIT_OFFSET_CAPTURE.
