PHP'de Düzenli İfadelerin Kullanımını Optimize Etme

Düzenli ifadeler çok ağır ve nispeten yavaş çalışan bir şeydir. Alternatif bir çözüm olduğunda, kesinlikle onu kullanmak gerekir.

Bir örnekle bakalım. Diyelim ki bir dizginin ünlem işaretiyle başlayıp başlamadığını kontrol etmemiz gerekiyor. Bazı programcılar bu sorunu bir düzenli ifadeyle çözmüş:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'evet';
  } else {
    echo 'hayır';
  }
?>

Ancak, böyle bir sorun çok daha hızlı çalışan bir çözüme sahiptir:

php<?php
  if ($str[0] == '!') {
    echo 'evet';
  } else {
    echo 'hayır';
  }
?>

Düzenli ifadeler çok ağır ve nispeten yavaş çalışan bir şeydir. Alternatif bir çözümün olduğu her yerde, kesinlikle onu kullanmak gerekir.

Задание 1

Aşağıdaki kodda bazı programcılar, bir dizgide '333' alt dizisinin olup olmadığını kontrol ediyor. Bu programcının çözümünü optimize edin.

İşte kod:

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

Aşağıdaki kodda bazı programcılar, bir dizginin .html ile bitip bitmediğini kontrol ediyor. Bu programcının çözümünü optimize edin.

İşte kod:

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

Bir dizginin .png veya .jpg ile bitip bitmediğini kontrol edecek kodu yazın.