Monday, July 2, 2012

PHP pun move on!

Emange orang patah hati aja harus move on dari masa lalunya yang kelam dan suram. Begitu juga bahasa pemrograman yang paling banyak di pake seantero situs di dunia ini. Yup, apalagi kalo bukan PHP. Mungkin ada yang sudah tau soal ini, tapi suwer kewer kewer nin baru tau soal ini.

Berawal dari nyoba nyari solusi untuk memfilter isi masukan dari form, ngecek pengennya ada yang cuma isiannya angka doank, huruf doank, kombinasi keduanya atau simbol yang lain. Nah, begitu baca buku (sori to say, bukunya ternyata jadul. Haha), buat ngecek beginian ternyata bisa pake fungsi ereg (regular expression kalo gak salah maksudnya) atau eregi (sama dengan fungsi eregi tapi gak case sensitive). Ternyata ya error terus, gini bunyi errornya :



Setelah nanya sama mbah google, ternyata fungsi ereg sudah digantikan (atawa istilah kerennya : deprecated). Baca disini, mulai dari PHP versi 5.3, sudah move on dengan maksud meningkatkan performa terutama biar kompatibel dengan Perl. Nah, sebagai penggantinya, fungsi ereg digantikan dengan fungsi preg_match dengan format string yang sama ("pattern", string).

Nah, disini nin menggunakannya sebagai filter pada hasil inputan text. Maunya username hanya terdiri dari kombinasi angka dan huruf saja, jadi pattern yang nin gunakan adalah [[:alnum]], kalo mau angka saja bisa pake [[:digit]], huruf saja pake [[:alpha]], dan masih banyak lagi yang lain tergantung keinginan. Kalo syarat dalam pattern terpenuhi dalam string inputan text tersebut, maka hasil yang dikembalikan oleh preg_match berupa TRUE, sedangkan kalo ternyata ada simbol lain selain yang ada di pattern, maka preg_match akan mengembalikan nilai FALSE.

Contoh scriptnya kayak gini nih :

$string1 = "nina@suhari";
$string2 = "ninasuhari2";
$cek1 = preg_match("[[:alnum]]", $string1);
$cek1 = preg_match("[[:alnum]]", $string2);

$cek1 akan bernilai false karena dalam $string1 terdapat simbol yang bukan huruf atau angka, sedangkan $cek2 akan bernilai true karena dalam $string2 hanya terdapat kombinasi huruf dan angka.

Dari script diatas, kita bisa membuat script yang mengecek apakah stringnya sudah benar atau gak menggunakan fungsi if-else. Mau tau caranya? Komen aja disini biar nin kasi tau. Hehe.

Ini dia contoh dari program yang nin buat menggunakan pattern [[:alnum]] :
*form*
 


*hasil*
 


Bisa diliat kalo hasilnya salah, karena dari form ternyata masukan username ada tanda petik yang bukan merupakan angka ataupun huruf.

Semoga paham ya. Jadi, kalo nemu buku (dan ngikutin fungsi) yang masih membahas soal ereg atau eregi, brarti bukunya dibuat sebelum PHP 5.3 mulai berkembang. Hehe.

Salam,

- Nina Suhari -