การเพิ่มประสิทธิภาพการใช้ Regular Expression ใน PHP

Regular Expression นั้นเป็นสิ่งที่หนักและทำงานค่อนข้างช้า เมื่อมีทางเลือกอื่น ควรใช้ทางเลือกนั้นแทน

มาดูตัวอย่างกัน สมมติว่าเราต้องการตรวจสอบว่าบางสตริงขึ้นต้นด้วยเครื่องหมายอัศเจรีย์หรือไม่ โปรแกรมเมอร์บางคนแก้ปัญหานี้โดยใช้ Regular Expression:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'ใช่';
  } else {
    echo 'ไม่ใช่';
  }
?>

อย่างไรก็ตาม ปัญหาดังกล่าวมีวิธีแก้ที่ทำงานเร็วกว่ามาก:

php<?php
  if ($str[0] == '!') {
    echo 'ใช่';
  } else {
    echo 'ไม่ใช่';
  }
?>

Regular Expression นั้นเป็นสิ่งที่หนักและทำงานค่อนข้างช้ามาก เมื่อใดก็ตามที่มีทางเลือกอื่น ควรใช้ทางเลือกนั้นแทน

Задание 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