Оптимизација на употребата на регуларни изрази во PHP

Регуларните изрази се многу тешка и релативно бавна работа. Кога постои алтернативно решение, пожелно е да се користи токму тоа.

Да погледнеме на пример. Да претпоставиме дека треба да провериме дали одреден стринг започнува со извичник. Некој програмер ја реши оваа задача со регуларен израз:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'да';
  } else {
    echo 'нет';
  }
?>

Сепак, оваа задача има многу побрзо решение:

php<?php
  if ($str[0] == '!') {
    echo 'да';
  } else {
    echo 'нет';
  }
?>

Регуларните изрази се многу тешка и релативно бавна работа. Секогаш, кога постои алтернативно решение, пожелно е да се користи токму тоа.

Задание 1

Во следниот код некој програмер проверува, дали во стрингот постои подстрингот '333'. Оптимизирајте го решението на овој програмер.

Еве го кодот:

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

Во следниот код некој програмер проверува, дали стрингот завршува на .html. Оптимизирајте го решението на овој програмер.

Еве го кодот:

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

Напишете код кој ќе проверува дали стрингот завршува на .png или на .jpg.