Optimizacija upotrebe regularnih izraza u PHP-u
Regularni izrazi su veoma teška i relativno sporo radeća stvar. Kada postoji alternativno rešenje, poželjno je koristiti baš to.
Pogledajmo na primeru. Neka treba da proverimo, da li neki string počinje sa znakom uzvika. Neki programer je rešio ovaj zadatak preko regularke:
<?php
if (preg_match('#^!#', $str)) {
echo 'da';
} else {
echo 'ne';
}
?>
Međutim, ovakav zadatak ima mnogo brže radeće rešenje:
<?php
if ($str[0] == '!') {
echo 'da';
} else {
echo 'ne';
}
?>
Regularni izrazi su veoma teška i relativno sporo radeća stvar. Uvek, gde postoji alternativno rešenje, poželjno je koristiti baš to.
U sledećem kodu neki programer proverava,
da li u stringu postoji podstring '333'.
Optimizujte rešenje ovog programera.
Evo koda:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'ima';
} else {
echo 'nema';
}
?>
U sledećem kodu neki programer proverava,
da li string završava na .html.
Optimizujte rešenje ovog programera.
Evo koda:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'da';
} else {
echo 'ne';
}
?>
Napišite kod koji će proveravati, da li string završava
na .png ili na .jpg.