Regulaaravaldiste kasutamise optimeerimine PHP-s

Regulaaravaldised on väga ressursimahukad ja suhteliselt aeglase töökiirusega asi. Kui on olemas alternatiivne lahendus, on soovitav kasutada just seda.

Vaatame näidet. Oletame, et peame kontrollima, kas mingi string algab hüüumärgiga. Mingi programmeerija lahendas selle ülesande regulaaravaldise abil:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'jah';
  } else {
    echo 'ei';
  }
?>

Kuid sellel ülesandel on palju kiirem lahendus:

php<?php
  if ($str[0] == '!') {
    echo 'jah';
  } else {
    echo 'ei';
  }
?>

Regulaaravaldised on väga ressursimahukad ja suhteliselt aeglase töökiirusega asi. Alati, kus on olemas alternatiivne lahendus, on soovitav kasutada just seda.

Задание 1

Järgmises koodis kontrollib mingi programmeerija, kas stringis on alamstring '333'. Optimeerige selle programmeerija lahendus.

Siin on kood:

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

Järgmises koodis kontrollib mingi programmeerija, kas string lõpeb .html-ga. Optimeerige selle programmeerija lahendus.

Siin on kood:

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

Kirjutage kood, mis kontrollib, kas string lõpeb .png või .jpg-ga.