Optimasi Penggunaan Ekspresi Reguler di PHP
Ekspresi reguler adalah sesuatu yang sangat berat dan relatif lambat kinerjanya. Ketika ada solusi alternatif, sebaiknya gunakan solusi alternatif tersebut.
Mari kita lihat sebuah contoh. Misalkan kita perlu memeriksa apakah sebuah string diawali dengan tanda seru. Seorang programmer menyelesaikan tugas ini dengan ekspresi reguler:
<?php
if (preg_match('#^!#', $str)) {
echo 'ya';
} else {
echo 'tidak';
}
?>
Namun, tugas seperti ini memiliki solusi yang berjalan jauh lebih cepat:
<?php
if ($str[0] == '!') {
echo 'ya';
} else {
echo 'tidak';
}
?>
Ekspresi reguler adalah sesuatu yang sangat berat dan relatif lambat kinerjanya. Setiap kali ada solusi alternatif, sebaiknya gunakan solusi alternatif tersebut.
Pada kode berikut, seorang programmer memeriksa
apakah dalam sebuah string terdapat substring
'333'.
Optimalkan solusi programmer ini.
Berikut kodenya:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'ada';
} else {
echo 'tidak ada';
}
?>
Pada kode berikut, seorang programmer memeriksa
apakah sebuah string diakhiri dengan .html.
Optimalkan solusi programmer ini.
Berikut kodenya:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'ya';
} else {
echo 'tidak';
}
?>
Tuliskan kode yang akan memeriksa, apakah sebuah string
diakhiri dengan .png atau dengan .jpg.