Optimizarea utilizării expresiilor regulate în PHP
Expresiile regulate sunt un instrument foarte greu și relativ lent. Când există o soluție alternativă, este de preferat să o folosiți pe aceasta.
Să ne uităm la un exemplu. Să presupunem că trebuie să verificăm dacă un anumit șir începe cu un semn de exclamare. Un programator a rezolvat această sarcină folosind o expresie regulată:
<?php
if (preg_match('#^!#', $str)) {
echo 'da';
} else {
echo 'nu';
}
?>
Cu toate acestea, această sarcină are o soluție mult mai rapidă:
<?php
if ($str[0] == '!') {
echo 'da';
} else {
echo 'nu';
}
?>
Expresiile regulate sunt un instrument foarte greu și relativ lent. Întotdeauna, când există o soluție alternativă, este de preferat să o folosiți pe aceasta.
În următorul cod, un programator verifică
dacă în șir există subșirul '333'.
Optimizați soluția acestui programator.
Iată codul:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'există';
} else {
echo 'nu există';
}
?>
În următorul cod, un programator verifică
dacă șirul se termină cu .html.
Optimizați soluția acestui programator.
Iată codul:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'da';
} else {
echo 'nu';
}
?>
Scrieți cod care va verifica dacă șirul
se termină cu .png sau cu .jpg.