Optimizacija uporabe regularnih izrazov v PHP
Regularni izrazi so zelo zahtevna in razmeroma počasna stvar. Kadar obstaja alternativna rešitev, je zaželeno uporabiti prav to.
Poglejmo si primer. Recimo, da želimo preveriti, ali se nek niz začne z klicajem. Nek programer je to nalogo rešil z regularnim izrazom:
<?php
if (preg_match('#^!#', $str)) {
echo 'da';
} else {
echo 'ne';
}
?>
Vendar ima taka naloga veliko hitrejšo rešitev:
<?php
if ($str[0] == '!') {
echo 'da';
} else {
echo 'ne';
}
?>
Regularni izrazi so zelo zahtevna in razmeroma počasna stvar. Vedno, kadar obstaja alternativna rešitev, je zaželeno uporabiti prav to.
V naslednji kodi nek programer preverja,
ali niz vsebuje podniz '333'.
Optimizirajte rešitev tega programerja.
Tu je koda:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'je';
} else {
echo 'ni';
}
?>
V naslednji kodi nek programer preverja,
ali se niz konča z .html.
Optimizirajte rešitev tega programerja.
Tu je koda:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'da';
} else {
echo 'ne';
}
?>
Napišite kodo, ki bo preverila, ali se niz
konča z .png ali z .jpg.