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<?php
  if (preg_match('#^!#', $str)) {
    echo 'da';
  } else {
    echo 'ne';
  }
?>

Međutim, ovakav zadatak ima mnogo brže radeće rešenje:

php<?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.

Задание 1

U sledećem kodu neki programer proverava, da li u stringu postoji podstring '333'. Optimizujte rešenje ovog programera.

Evo koda:

php<?php
  $str = '1233345';
  
  if (preg_match('#333#', $str)) {
    echo 'ima';
  } else {
    echo 'nema';
  }
?>
Задание 2

U sledećem kodu neki programer proverava, da li string završava na .html. Optimizujte rešenje ovog programera.

Evo koda:

php<?php
  $str = 'index.html';
  
  if (preg_match('#\.html$#', $str)) {
    echo 'da';
  } else {
    echo 'ne';
  }
?>
Задание 3

Napišite kod koji će proveravati, da li string završava na .png ili na .jpg.