PHPда регуляр ифодаларини қўллашни оптимизациялаш
Регуляр ифодалари жуда огир ва носибатан секин ишлайдиган нарса. Қачонки бошқа ечим мавжуд бўлса, уни қўллаш мақсадга мувофиқдир.
Мисолда кўрамиз. Фароз қилайлик, бизга бирор сатр ўзбекча ҳарфдан бошланишини текшириш керак. Бир программист бу вазифани регуляр орқали ечган:
<?php
if (preg_match('#^!#', $str)) {
echo 'ҳа';
} else {
echo 'йўқ';
}
?>
Бирок, бундай вазифа жуда тезрок ишлайдиган ечимга эга:
<?php
if ($str[0] == '!') {
echo 'ҳа';
} else {
echo 'йўқ';
}
?>
Регуляр ифодалари жуда огир ва нисбатан секин ишлайдиган нарса. Ҳар қандай бошқа ечим мавжуд бўлган жойда, уни қўллаш мақсадга мувофиқдир.
Кейинги кодда бир программист сатрда '333'
қисм сатр борлигини текширмокда.
Шу программистнинг ечимини оптималлаштиринг.
Код:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'бор';
} else {
echo 'йўқ';
}
?>
Кейинги кодда бир программист сатрнинг .html
билан тугашини текширмокда.
Шу программистнинг ечимини оптималлаштиринг.
Код:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'ҳа';
} else {
echo 'йўқ';
}
?>
Сатрнинг .png ёки .jpg билан
тугашини текширадиган код ёзинг.