Senin, 23 April 2012

Regular Expression Pemeriksaan Struktur Syntax pada PHP

Disini penulis ingin membagikan sedikit tentang regular expression. Menurut Ilmu yang sudah saya dapatkan dari perkuliahan, regular exspression merupakan salah satu implementasi dari operasi  pencocokan pola (Pattern Recognation) untuk sebuah text atau string. Jadi dengan menggunakan regex, kita dapat mencari teks yang sesuai pola, memvalidasi terhadap inputan, dan lain-lain.
Semester 3 kemarin saya mendapat tugas dari sang dosen untuk membuat regular expression mengecek struktur function pada bahasa pemrograman PHP.
Permintaan sang dosen yaitu seperti screenshot di bawah ini dengan syarat penulisan fungsi hanya terdiri dari huruf, angka dan garis bawah (underscore) dan harus diawali dengan huruf. Apabila bisa mengerjakan program ini dengan benar maka akan dibebaskan dari Ujian Tengah Semester.



Ini adalah script program yang sudah saya buat:

<html>
<head>
<title>PHP Chalenge JokoArisPramono</title>
</head>
<body>
<h1>Pemeriksaan Struktur Syntax pada PHP</h1>
<table>
<form method="get">
<tr bgcolor="#CCCCCC">
<td height="50" align="left" valign="top" >Fungsi</td>
<td valign="top" width='50'>:</td>
<td><textarea name="txtFungsi" type="text" rows="5" cols='84'>
<?php
if(isset($_GET['txtFungsi'])) {
echo $_GET['txtFungsi'];
}
?>
</textarea></td>
</tr>
<tr>
<td></td>
<td></td>
<td>Format fungsi yang memenuhi syarat:</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
<?php
preg_match_all("/^[_a-zA-Z][_a-zA-Z0-9]*\(\)[;]|^[_a-zA-Z][_a-zA-Z0-9]*\([&]?[$][a-z][_a-zA-Z0-9 ,&$]*\)[;]/m", $_GET['txtFungsi'], $jumlahFungsi);
for($i=0; $i <= count($jumlahFungsi); $i++) {
foreach($jumlahFungsi[$i] as $output) {
echo "<ul>";
echo "<li>" .$output. "</li>";
echo "</ul>";
}
}
?>
</td>
</tr>
<tr bgcolor="#CCCCCC">
<td></td>
<td></td>
<td><input type="submit" name="Submit" value="Submit"/></td>
</tr>
</form>
</table>
</body>
</html>

Screenshot running program saya yang diatas ini adalah sebagai berikut:

Semoga tulisan saya ini bermanfaat untuk pembaca. Penulis menerima saran dan kritik yang membangun dari pembaca. Sekian dan terimakasih :-) .

2 komentar: