Reguláris kifejezések használatának optimalizálása PHP-ban

A reguláris kifejezések nagyon erőforrásigényesek és viszonylag lassan működnek. Amikor van alternatív megoldás, célszerű azt használni.

Nézzünk egy példát. Tegyük fel, ellenőriznünk kell, hogy egy bizonyos sztring felkiáltó jellel kezdődik-e. Egy programozó reguláris kifejezéssel oldotta meg ezt a feladatot:

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

Ugyanakkor, ennek a feladatnak sokkal gyorsabb megoldása is van:

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

A reguláris kifejezések nagyon erőforrásigényesek és viszonylag lassan működnek. Mindig, ahol van alternatív megoldás, célszerű azt használni.

Задание 1

A következő kódban egy programozó azt ellenőrzi, hogy a sztring tartalmazza-e a '333' részt. Optimalizálja a programozó megoldását.

Itt a kód:

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

A következő kódban egy programozó azt ellenőrzi, hogy a sztring a .html végződéssel rendelkezik-e. Optimalizálja a programozó megoldását.

Itt a kód:

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

Írjon kódot, amely ellenőrzi, hogy a sztring a .png vagy a .jpg végződéssel rendelkezik-e.