Ottimizzazione dell'uso delle espressioni regolari in PHP
Le espressioni regolari sono uno strumento molto pesante e relativamente lento. Quando esiste una soluzione alternativa, è preferibile utilizzare quella.
Vediamo un esempio. Supponiamo di dover verificare se una certa stringa inizia con un punto esclamativo. Un programmatore ha risolto questo problema utilizzando le regex:
<?php
if (preg_match('#^!#', $str)) {
echo 'sì';
} else {
echo 'no';
}
?>
Tuttavia, per questo problema esiste una soluzione molto più veloce:
<?php
if ($str[0] == '!') {
echo 'sì';
} else {
echo 'no';
}
?>
Le regex sono uno strumento molto pesante e relativamente lento. Ogni volta che esiste una soluzione alternativa, è preferibile utilizzare quella.
Nel codice seguente, un programmatore verifica
se nella stringa è presente la sottostringa '333'.
Ottimizzate la soluzione di questo programmatore.
Ecco il codice:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'c'è';
} else {
echo 'non c'è';
}
?>
Nel codice seguente, un programmatore verifica
se la stringa termina con .html.
Ottimizzate la soluzione di questo programmatore.
Ecco il codice:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'sì';
} else {
echo 'no';
}
?>
Scrivete un codice che verifichi se una stringa
termina con .png o con .jpg.