การเพิ่มประสิทธิภาพการใช้ Regular Expression ใน PHP
Regular Expression นั้นเป็นสิ่งที่หนักและทำงานค่อนข้างช้า เมื่อมีทางเลือกอื่น ควรใช้ทางเลือกนั้นแทน
มาดูตัวอย่างกัน สมมติว่าเราต้องการตรวจสอบว่าบางสตริงขึ้นต้นด้วยเครื่องหมายอัศเจรีย์หรือไม่ โปรแกรมเมอร์บางคนแก้ปัญหานี้โดยใช้ Regular Expression:
<?php
if (preg_match('#^!#', $str)) {
echo 'ใช่';
} else {
echo 'ไม่ใช่';
}
?>
อย่างไรก็ตาม ปัญหาดังกล่าวมีวิธีแก้ที่ทำงานเร็วกว่ามาก:
<?php
if ($str[0] == '!') {
echo 'ใช่';
} else {
echo 'ไม่ใช่';
}
?>
Regular Expression นั้นเป็นสิ่งที่หนักและทำงานค่อนข้างช้ามาก เมื่อใดก็ตามที่มีทางเลือกอื่น ควรใช้ทางเลือกนั้นแทน
ในโค้ดต่อไปนี้ โปรแกรมเมอร์บางคนกำลังตรวจสอบว่ามีสตริงย่อย '333' อยู่ในสตริงหรือไม่
จงเพิ่มประสิทธิภาพการแก้ปัญหาของโปรแกรมเมอร์คนนี้
นี่คือโค้ด:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'มี';
} else {
echo 'ไม่มี';
}
?>
ในโค้ดต่อไปนี้ โปรแกรมเมอร์บางคนกำลังตรวจสอบว่าสตริงลงท้ายด้วย .html หรือไม่
จงเพิ่มประสิทธิภาพการแก้ปัญหาของโปรแกรมเมอร์คนนี้
นี่คือโค้ด:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'ใช่';
} else {
echo 'ไม่ใช่';
}
?>
เขียนโค้ดที่จะตรวจสอบว่าสตริงลงท้ายด้วย .png หรือ .jpg