preg_last_error Fonksiyonu
preg_last_error fonksiyonu, düzenli ifadelerle çalışan fonksiyonların
kullanımı sırasında oluşan son hatanın kodunu döndürür.
Bu, preg_match veya preg_replace gibi fonksiyonlar
false döndürdüğünde düzenli ifadeleri ayıklamak için kullanışlıdır.
Fonksiyon parametre almaz.
Fonksiyon bir tamsayı hata kodu döndürür. Kolaylık sağlamak için hata kodu özel sabitlerle karşılaştırılabilir (aşağıdaki tabloya bakın).
Sözdizimi
preg_last_error(): int;
Hata Sabitleri Tablosu
| Sabit | Değer | Açıklama |
|---|---|---|
PREG_NO_ERROR |
0 | Hata oluşmadı |
PREG_INTERNAL_ERROR |
1 | PCRE dahili hatası |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Geri izleme sınırı aşıldı (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Özyineleme sınırı aşıldı |
PREG_BAD_UTF8_ERROR |
4 | Geçersiz UTF-8 verisi |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Ofset geçerli bir UTF-8 kodunun başlangıcına uymuyor |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT derleyici yığın sınırı aşıldı |
Örnek
Geçersiz bir düzenli ifadeden sonra hatayı kontrol edelim:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Kodun çalıştırılmasının sonucu:
4
Örnek
PCRE hata sabitleri ile kullanım:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Kodun çalıştırılmasının sonucu:
'Backtrack limit was exhausted'
Ayrıca Bakınız
-
preg_matchfonksiyonu,
bir düzenli ifadeyle eşleşme arama yapar -
preg_replacefonksiyonu,
bir düzenli ifadeyle değiştirme yapar -
preg_quotefonksiyonu,
düzenli ifadelerdeki özel karakterleri kaçıştırır