PHP-da RegEx-lardan foydalanishni optimallashtirish
Muntazam ifodalar juda og'ir va nisbatan sekin ishlaydigan narsadir. Qachonki muqobil yechim mavjud bo'lsa, maqsadga muvofiq bo'lgani shundan foydalanishdir.
Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizga ma'lum bir satr undov belgisi bilan boshlanadimi yoki yo'qligini tekshirish kerak. Biron bir dasturchi bu muammoni regulyarka orqali hal qilgan:
<?php
if (preg_match('#^!#', $str)) {
echo 'ha';
} else {
echo 'yo\'q';
}
?>
Biroq, bunday vazifa ancha tezroq ishlaydigan yechimga ega:
<?php
if ($str[0] == '!') {
echo 'ha';
} else {
echo 'yo\'q';
}
?>
Regulyarkalar juda og'ir va nisbatan sekin ishlaydigan narsadir. Har doim, qachonki muqobil yechim mavjud bo'lsa, maqsadga muvofiq bo'lgani shundan foydalanishdir.
Quyidagi kodda biron bir dasturchi satrda
'333' pastki satri bormi yo'qligini tekshirmoqda.
Ushbu dasturchining yechimini optimallashtiring.
Mana kod:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'bor';
} else {
echo 'yo\'q';
}
?>
Quyidagi kodda biron bir dasturchi satr
.html bilan tugaydimi yo'qligini tekshirmoqda.
Ushbu dasturchining yechimini optimallashtiring.
Mana kod:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'ha';
} else {
echo 'yo\'q';
}
?>
.png yoki .jpg bilan tugaydigan satrni
tekshiradigan kod yozing.