5. การควบคุมข้อความ และนิพจน์ปกติ
การประยุกต์กับข้อความของ PHP สำหรับการจัดรูปแบบและควบคุมข้อความ
จะกล่าวถึงการใช้ฟังก์ชันข้อความ หรือฟังก์ชันนิพจน์ปกติ (regular
expression) เพื่อค้นหาคำ วลี หรือรูปแบบอื่นภายในข้อความ
ฟังก์ชันเหล่านี้มีประโยชน์ในหลายบริบท เช่น การจัดรูปแบบนำเข้าแล้วจัดเก็บในฐานข้อมูล
ฟังก์ชันค้นหามีประโยชน์มากเมื่อสร้างโปรแกรม
5.1ชุดตัวอักษรและ Unicode
ตามปกติ PHP นำเสนอข้อความเป็นตัวอักษร
8 บิตตาม ISO-8859-1 ซึ่งสามารถแสดงได้ 256 ตัวอักษร ดังนั้นจึงไม่สามารถแสดงพยัญชนะที่ต้องการมากกว่านี้ได้
เช่น จีนหรือญี่ปุ่นได้
PHP มีส่วนขยาย mbstring ช่วยแก้ไขปัญหานี้
ก่อนอื่นควรเรียนรู้เกี่ยวกับ "ชุดตัวอักษร" (Character Set หรือ
charset) และการทำงานของคอมพิวเตอร์กับพยัญชนะต่างๆ
5.2การจัดรูปแบบข้อความ
ตามปกติต้องมีการปรับข้อความของผู้ใช้เล็กน้อย
(จาก ฟอร์ม HTML) ก่อนการใช้
ขั้นตอนแรกในการปรับคือการตัด whitespace ส่วนเกินจากข้อความ
ถึงแม้ว่าสิ่งนี้ไม่สำคัญแต่มีประโยชน์ถ้ากำลังเก็บข้อมูลในไฟล์หรือฐานข้อมูล หรือเปรียบเทียบข้อความ
PHP มี
3 ฟังก์ชันสำหรับวัตถุประสงค์นี้ ฟังก์ชัน trim () ใช้ปรับปรุงข้อมูลนำเข้าดังนี้
$name =
trim($name);
ฟังก์ชัน trim () ตัด whitespace จากเริ่มต้นและท้ายข้อความ จากนั้นส่งออกข้อความผลลัพธ์
ตัวอักษรที่ถูกตัดคือ บรรทัดใหม่ (\n)
และช่องว่าง
ฟังก์ชัน ltrim () กำจัด whitespace เฉพาะจากเริ่มต้นข้อความ ฟังก์ชัน chop() กำจัด
whitespace จากท้ายข้อความ
5.3การทำงานกับข้อความ
PHP มีหลายฟังก์ชันในการควบคุมและประมวลผลข้อความ รวมทั้งมีหลายฟังก์ชันได้รับการ
overload เมื่อเปิดโมดูล mbstring สำหรับ
multi-byte
การดึงสารสนเทศ
PHP มีฟังก์ชันจำนวนหนึ่งในการดึงสารสนเทศของข้อความ
ได้แก่ ความยาวและตำแหน่งภายในชุดตัวอักษร
ฟังก์ชัน strlen (mb_strlen)
ฟังก์ชัน strlen () สามารถตรวจสอบความยาวของข้อความด้วยการนับตัวอักษร
strlen("กุหลาบ สายประดิษฐ์ เจ้าของนามปากกา ศรีบูรพา");
ข้อความนี้นับได้ 43 ตัวอักษร
int mb_strlen(string input, string encode);
5.4นิพจน์ปกติ
PHP สนับสนุนไวยากรณ์นิพจน์ปกติ (Regular
Expression) 2 รูปแบบ คือ POSIX และ
Perl รูปแบบ POSIX ของนิพจน์ปกติ
ได้รับการคอมไพล์ไปยัง PHP ตามค่าเริ่มต้น แต่สามารถใช้รูปแบบ Perl
โดยการคอมไพล์ในไลบรารี PCRE (Perl - Compatible Regular
Expression) ในบทเรียนนี้จะกล่าวถึงรูปแบบ POSIX ส่วนรูปแบบ
Perl หรือการเรียนรู้เกี่ยวกับ PCRE สามารถอ่านได้จากคู่มือบนเว็บที่
http://au3.php.net/manual/en/ref.pcre.php
การใช้ฟังก์ชันข้อความมีความจำกัดในค้นหา ถ้าต้องทำการจับคู่ซับซ้อนควรใช้นิพจน์ปกติที่มีประสิทธิภาพดีกว่า
นิพจน์ปกติเรียนรู้ได้ลำบากในตอนต้นแต่สามารถใช้ประโยชน์ได้มาก
ไม่มีความคิดเห็น:
แสดงความคิดเห็น