PHP 5.3’te “ereg is deprecated” hatası çözümü

Şayet halihazırda kullandığınız scripti değiştirmeden PHP sürümünüzü 5.3’e yükseltmişseniz bazı hata mesajları almanız kaçınılmazdır. Bu olası hatalardan biri olan “ereg is deprecated” hatası ereg fonksiyonlarında ortaya çıkacaktır. Çünkü php 5.3’te yavaş çalışan ve genellikle tercih edilmeyen ereg fonksiyon ailesi yerini tamamen preg fonksiyon ailesine bırakmıştır. Scriptinizdeki bu hatanın çözümü için aşağıdaki örnek kodlarla ereg()’den preg()’e nasıl geçileceğini açıklamaya çalışalım:

ereg():

ereg(‘\.([^\.]*$)’, $this->file_src_name, $extension);

böyle değiştirilmelidir:

preg_match(‘/\.([^\.]*$)/’, $this->file_src_name, $extension);

Fark edeceğiniz gibi örnekte ereg fonksiyonundaki (\.([^\.]*$)) kümesi, / / sınırlayıcıları içine alınıyor.

ereg_replace():

$this->file_dst_name_body = ereg_replace(‘[^A-Za-z0-9_]’, ”, $this->file_dst_name_body);
becomes

$this->file_dst_name_body = preg_replace(‘/[^A-Za-z0-9_]/’, ”, $this->file_dst_name_body);

Burada da aynı şekilde  ereg fonksiyonundaki küme / / sınırlayıcıları içine alınıyor.
Eğer değiştirmek istediğiniz fonksiyonlar eregi fonksiyonlarıysa (eregi, ereg’in büyük-küçük harflere duyarlı versiyonudur), buna eşdeğer bir “preg”i fonkiyonunun olmadığını göreceksiniz.

preg  fonkiyonunu büyük-küçük harflere duyarlı biçimde kullanmak için / / sınırlayıcılarının sonunda i kullanmak gerekecektir

Yani:

eregi(‘\.([^\.]*$)’, $this->file_src_name, $extension);

preg_match(‘/\.([^\.]*$)/i’, $this->file_src_name, $extension)

Eğer dikkatli uygularsanız “ereg is deprecated” hatasının çözüldüğünü göreceksiniz.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.