Reguliariųjų išraiškų naudojimo optimizavimas PHP
Reguliariosios išraiškos yra labai sunkus ir palyginti lėtai veikiantis dalykas. Kai yra alternatyvus sprendimas, pageidautina naudoti būtent jį.
Pažiūrėkime pavyzdžiu. Tarkime, mums reikia patikrinti, ar tam tikra eilutė prasideda šauktuku. Kažkoks programuotojas šią užduotį išsprendė naudodamas reguliariąją išraišką:
<?php
if (preg_match('#^!#', $str)) {
echo 'taip';
} else {
echo 'ne';
}
?>
Tačiau, tokiai užduočiai yra daug greičiau veikiantis sprendimas:
<?php
if ($str[0] == '!') {
echo 'taip';
} else {
echo 'ne';
}
?>
Reguliariosios išraiškos yra labai sunkus ir palyginti lėtai veikiantis dalykas. Visada, kur yra alternatyvus sprendimas, pageidautina naudoti būtent jį.
Toliau pateiktame kode kažkoks programuotojas tikrina,
ar eilutėje yra poeilutė '333'.
Optimizuokite šio programuotojo sprendimą.
Štai kodas:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'yra';
} else {
echo 'nėra';
}
?>
Toliau pateiktame kode kažkoks programuotojas tikrina,
ar eilutė baigiasi .html.
Optimizuokite šio programuotojo sprendimą.
Štai kodas:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'taip';
} else {
echo 'ne';
}
?>
Parašykite kodą, kuris tikrins, ar eilutė baigiasi
.png arba .jpg.