Membenarkan fungsi ereg yang telah ditinggalkan (deprecated) di PHP 5.3

Jika anda mengupgrade ke PHP 5.3, kemungkinan besar anda akan menemukan beberapa peringatan (warning) dari fungsi-fungsi PHP yang telah ditinggalkan.

Sebagai contoh adalah fungsi ereg dan teman-temannya. Fungsi ini dihilangkan untuk meningkatkan performa kerja serta mengoptimalkan fungsi preg yang kompatibel dengan Perl.

Kejadian ini saya alami ketika menginstall salah satu CMS yang ternyata masih menggunakan fungsi-fungsi ereg, otomatis peringatan muncul dan CMS tidak bisa berjalan dengan sempurna.

Untuk itu saya harus mengubah fungsi ereg dengan preg.

Proses mengubah dari fungsi ereg() :

ereg('\.([^\.]*$)', $source_file, $extension);

menjadi

preg_match('/\.([^\.]*$)/', $source_file, $extension);

Perhatikan bahwa saya menambahkan karakter / pada awal dan akhir pola (\.([^\.]*$)), dimana adalah RegExp delimiters.

Proses untuk mengubah dari fungsi ereg_replace() :

$target = ereg_replace('[^A-Za-z0-9_]', '', $target);

Menjadi

$target = preg_replace('/[^A-Za-z0-9_]/', '', $target);

Perhatikan pattern yang saya tambahkan delimiter /.

Jika anda menggunakan eregi (versi case-sensitive dari ereg), anda tidak bisa mengubahnya ke pregi, karena tidak ada fungsi tersebut.

Untuk menanggulanginya maka dapat dengan cara menambahkan i setelah delimiter pada pola.

eregi('\.([^\.]*$)', $source_file, $extension);

menjadi

preg_match('/\.([^\.]*$)/i', $source_file, $extension);

Have fun with coding :-D

if you think this article is useful (Y) , please leave a comment.. ;-)

© 2010, Christian Chandra. All rights reserved. Find out more at http://blog.christianchandra.com

14 Replies to “Membenarkan fungsi ereg yang telah ditinggalkan (deprecated) di PHP 5.3”

  1. if (ereg(‘http://’, $q) or !file_exists(“$q.php”)) ini scrip saya yang error sudah saya ganti dengan if (preg_match(‘http://’, $q) or !file_exists(“$q.php”)) tapi masih error juga mas,,, erornya “preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash” minta pencerahannya gan

  2. kok masih tetap eror gan,,, scriptnya aslinya sebelumnya gini:
    $judul =eregi_replace(“‘”,” “,$judul);
    lalu takrubah sesuai tutorial diatas jadi gini:
    $judul =preg_match(“‘”,”‘ ‘”,$judul);
    tp kemudian muncul eror :
    Warning: preg_match() [function.preg-match]: No ending delimiter ”’
    ada solusi gan?

Leave a Reply

Your email address will not be published. Required fields are marked *