Ana Sayfa Yardım Merkezi PHP 5.3 Hataları
PHP 5.3 Hataları

Deprecated: Function eregi() is deprecated in Hatası ve Çözümü

4 dakika okuma Güncel bilgi
Yardım Merkezine Dön

PHP'de "Deprecated: Function eregi() is deprecated" Hatası Nasıl Çözülür?

PHP sürümünüzü yükselttikten sonra eski web uygulamalarında aşağıdaki hata mesajıyla karşılaşabilirsiniz.

Deprecated: Function eregi() is deprecated

Bu hata, uygulamanızda kullanılan ereg() ve eregi() fonksiyonlarının yeni PHP sürümlerinde artık desteklenmemesinden kaynaklanmaktadır. Eski projelerde sıkça görülen bu durum, özellikle PHP 5.x sürümlerinden PHP 7 veya daha yeni sürümlere geçişlerde ortaya çıkar.

Önemli Bilgi

ereg() ve eregi() fonksiyonları PHP 5.3 sürümünde kullanımdan kaldırılmış (Deprecated), PHP 7.0 ve sonraki sürümlerde ise tamamen kaldırılmıştır. Bu nedenle eski kodlar yeni PHP sürümlerinde çalışmaz.

Hata Neden Oluşur?

Eski PHP sürümlerinde kullanılan ereg tabanlı düzenli ifade (Regular Expression) fonksiyonları, performans ve güvenlik nedenleriyle PHP çekirdeğinden kaldırılmıştır. Yerine daha hızlı, daha esnek ve güncel standartları destekleyen PCRE (Perl Compatible Regular Expressions) altyapısını kullanan preg_* fonksiyonları kullanılmaktadır.

Çözüm

Kodlarınızda bulunan ereg() ve eregi() fonksiyonlarını uygun preg_* fonksiyonları ile değiştirmeniz gerekmektedir.

Eski Kullanım

!eregi()

Yeni Kullanım

!preg_match()

Büyük/küçük harf duyarsız arama yapılacaksa düzenli ifadenin sonuna i parametresi eklenmelidir.

Örnek Dönüşüm

Eski:
eregi("^abc$", $text);

Yeni:
preg_match("/^abc$/i", $text); 
Bilgilendirme

preg_match() fonksiyonunda düzenli ifadeler / karakterleri arasına yazılır. Büyük/küçük harf duyarsız arama yapılacaksa düzenli ifadenin sonuna i parametresi eklenir.

Eski PHP Fonksiyonları ve Güncel Karşılıkları

Eski FonksiyonÖnerilen Karşılığı
call_user_method()call_user_func()
call_user_method_array()call_user_func_array()
ereg()preg_match()
eregi()preg_match() + /i
ereg_replace()preg_replace()
eregi_replace()preg_replace() + /i
split()explode() veya preg_split()
spliti()preg_split() + /i
session_register()$_SESSION
session_unregister()unset($_SESSION['anahtar'])
session_is_registered()isset($_SESSION['anahtar'])
set_socket_blocking()stream_set_blocking()
mysql_escape_string()PDO veya MySQLi Prepared Statements
mysql_db_query()PDO veya MySQLi
Dikkat

Sadece hata veren satırı değiştirmeniz her zaman yeterli olmayabilir. Eski PHP sürümleri için geliştirilmiş uygulamalarda benzer şekilde kullanımdan kaldırılmış birçok fonksiyon bulunabilir. Kodların tamamının gözden geçirilmesi önerilir.

Kalıcı Çözüm Nedir?

En sağlıklı yöntem, uygulamanızı güncel PHP sürümleriyle tamamen uyumlu hale getirmektir. Eski fonksiyonların yerine güncel PHP standartlarının kullanılması hem performansı artırır hem de güvenlik açıklarının önüne geçilmesine yardımcı olur.

Özellikle uzun yıllardır güncellenmeyen web uygulamalarında yalnızca hata veren satırları değiştirmek yerine kapsamlı bir kod güncellemesi yapılması tavsiye edilir.

Öneri

PHP sürümünü yükseltmeden önce uygulamanızı test ortamında çalıştırarak olası uyumluluk sorunlarını tespit etmeniz, canlı ortamda yaşanabilecek kesintilerin önüne geçmenize yardımcı olacaktır.

Sık Sorulan Sorular

preg_match() ile eregi() aynı görevi yapar mı?

Evet. Büyük/küçük harf duyarsız eşleştirme için düzenli ifadenin sonuna i parametresi eklenerek aynı işlem gerçekleştirilebilir.

Bu hata yalnızca PHP 7 sürümünde mi görülür?

Hayır. PHP 7 ve sonraki tüm sürümlerde, eski ereg tabanlı fonksiyonları kullanan uygulamalarda benzer hatalar görülebilir.

PHP sürümünü düşürmek çözüm olur mu?

Teknik olarak mümkün olsa da önerilmez. Eski PHP sürümleri güvenlik güncellemesi almadığından web sitenizi çeşitli güvenlik risklerine açık hale getirebilir.

İSİMKAYIT Yardım Merkezi

Bu makalede PHP'de görülen "Deprecated: Function eregi() is deprecated" hatasının nedenleri, çözüm yöntemleri ve eski PHP fonksiyonlarının güncel karşılıkları açıklanmıştır. PHP sürüm yönetimi, web uygulaması uyumluluğu ve yazılım optimizasyonu hakkında daha fazla bilgi için İSİMKAYIT Yardım Merkezi'ndeki diğer teknik rehberleri inceleyebilirsiniz.

Bu makale yardımcı olmadı mı? Destek ekibimizle iletişime geçin veya 0850 290 3344 numaralı hattı arayın.

Ürün sepete eklendi!