Optimizimi i përdorimit të shprehjeve të rregullta në PHP

Shprehjet e rregullta janë diçka shumë e rëndë dhe relativisht e ngadaltë në punë. Kur ka zgjidhje alternative, është e dëshirueshme të përdoret ajo.

Le të shohim një shembull. Supozoni se duam të kontrollojmë nëse një varg fillon me një shenjë pikëçuditëse. Një programues e zgjidhi këtë detyrë duke përdorur shprehje të rregullta:

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

Megjithatë, kjo detyrë ka një zgjidhje shumë më të shpejtë:

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

Shprehjet e rregullta janë diçka shumë e rëndë dhe relativisht e ngadaltë në punë. Gjithmonë, kur ka zgjidhje alternative, është e dëshirueshme të përdoret ajo.

Задание 1

Në kodin vijues, një programues kontrollon nëse në varg ekziston nënvargu '333'. Optimizoni zgjidhjen e këtij programuesi.

Këtu është kodi:

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

Në kodin vijues, një programues kontrollon nëse vargu mbaron me .html. Optimizoni zgjidhjen e këtij programuesi.

Këtu është kodi:

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

Shkruani kodin i cili do të kontrollojë nëse vargu mbaron me .png ose me .jpg.