Optimering af regex-brug i PHP
Regulære udtryk er en meget tung og relativt langsomt fungerende ting. Når der er en alternativ løsning, er det tilrådeligt at bruge netop den.
Lad os se på et eksempel. Antag, at vi skal kontrollere, om en bestemt streng starter med et udråbstegn. En programmør løste denne opgave med et regulært udtryk:
<?php
if (preg_match('#^!#', $str)) {
echo 'ja';
} else {
echo 'nej';
}
?>
Imidlertid har en sådan opgave en meget hurtigere løsning:
<?php
if ($str[0] == '!') {
echo 'ja';
} else {
echo 'nej';
}
?>
Regulære udtryk er en meget tung og relativt langsomt fungerende ting. Altid, hvor der er en alternativ løsning, er det tilrådeligt at bruge netop den.
I følgende kode tjekker en programmør,
om der er en understreng '333' i strengen.
Optimer denne programmørs løsning.
Her er koden:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'findes';
} else {
echo 'findes ikke';
}
?>
I følgende kode tjekker en programmør,
om strengen slutter med .html.
Optimer denne programmørs løsning.
Her er koden:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'ja';
} else {
echo 'nej';
}
?>
Skriv kode, der kontrollerer, om en streng
slutter med .png eller med .jpg.