>> รู้หมือไร่ <<
บางครั้งเวลาเราเขียน Regular Expression ที่ยาวๆ แล้วรู้สึกว่ามันอ่านยาก เพราะมันอยู่ในบรรทัดเดียว
ใน PHP นั้นสามารถใช้ x flag เพื่อทำให้ regex ของเราไม่สน whitespace
ซึ่งโหมดนี้เรียกว่า PCRE Extended
และในโหมด PCRE Extended นี้ จะมีอักษรพิเศษเพิ่มขึ้นมาคือ #
ซึ่งหากจะใช้ใน pattern ควรที่จะต้อง escape เพราะมันจะหมายถึง line comment
if (!preg_match(
'/^(
HEAD | # นี่คือ comment
GET | # ซึ่งจะเริ่มตั้งแต่ # ไปจนถึงท้ายบรรทัด
POST |
PUT |
DELETE |
PATCH |
OPTIONS
)$/ix',
$_SERVER['REQUEST_METHOD']
)) {
header('HTTP/1.1 405 Method Not Allowed');
exit;
}
จากตัวอย่างจะเห็นว่าเราสามารถจัดรูปแบบ regex ของเราให้ดูดีและอ่านได้ง่าย
แต่ข้อควรระวังคือ หากจะ match พวกช่องว่าง หรือ newline ก็จำเป็นต้องระบุชัดเจนลงไป
เช่นระบุ space ด้วย \x20 หรือ [ ]
Credit: Admin (phpinfo.in.th)