Sabtu, 24 Mei 2008

Mengambil Pola Teks

Sering sekali kita berhubungan dengan input atau data yang berhubungan dengan teks dan berkepentingan untuk mengambil sebagian dari teks tersebut berdasarkan suatu pola. Bagaimana kita melakukan hal tersebut ? Salah satu cara paling efisien adalah dengan menggunakan fungsi preg_match() seperti yang akan saya jelaskan di bawah ini.

Fungsi preg_match()

Fungsi preg_match() adalah fungsi yang digunakkan untuk mencari suatu pola di dalam subjek teks ktia dengan menggunakan regular expression.

Sintaks dasarnya adalah sebagai berikut:

int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )

tapi untuk penyederhanaan maka sintaks berikut adalah yang akan kita gunakan :

int preg_match ( string pattern, string subject [, array &matches] )

Dimana :
  • pattern adalah definisi pola dalam regex yang ingin kita cocokkan dengan subjek kita
  • subject adalah subjek teks yang akan kita cocokkan
  • matches adalah array tempat menyimpan hasil pencocokan teks dengan pola regex yang telah kita definisikan. Ini adalah parameter optional (boleh ada atau tidak).
Contoh Kasus

Misalkan kita memiliki suatu urutan teks sebagai berikut :

Nama=PHP;Website=http://www.komputasiawan.com;Komentar=Belajar Regex itu sangat berguna, terutama untuk pengolahan teks;Topik=Pengolahan Teks;

Dari untaian teks tersebut saya ingin mengambil url website yang terdapat di dalamnya, yaitu http://www.komputasiawan.com. Bagaimana caranya ?

Pertama kita tentukan pola regex yang pas untuk mengambil nilai dari entri Website, yaitu :

Website=(.+?);

Setelah itu kita masukkan sebagai parameter pertama fungsi preg_match() dengan diapit beberapa karakter khusus sebagai pengapit pola regex (/,@, &, dsbnya).

Contoh code-nya adalah sebagai berikut :


<?php
$teks = "Nama=PHP;Website=http://www.komputasiawan.com;Komentar=Belajar Regex itu sangat berguna, terutama untuk pengolahan teks;Topik=Pengolahan Teks;";

$pola = "&Website=(.+?);&";

$hasil_arr = array();
$hasil_akhir = "";

preg_match($pola, $teks, $hasil_arr);
$hasil_akhir = $hasil_arr[1];

echo "<pre>";
print_r($hasil_arr);

echo "URL website = $hasil_akhir";
echo "</pre>";
?>


Dan berikut adalah hasil yang didapatkan :


Array
(
[0] => Website=http://www.komputasiawan.com;
[1] => http://www.komputasiawan.com
)
URL website = http://www.komputasiawan.com


Sederhana bukan ?

Penutup

Penggunaan pola regular expression (regex) di PHP dengan menggunakan fungsi preg_match() sangat berguna untuk mengolah teks sederhana sampai dengan yang kompleks. Hal yang perlu kita kuasai adalah pengetahuan mengenai regex itu sendiri.

Demikian artikel ini dibuat, semoga dapat berguna. Nantikan artikel selanjutnya.

1 komentar:

Colonial Furniture mengatakan...

sip, makasih penjelasannya mengenaii preg_match()