วันอังคารที่ 16 ธันวาคม พ.ศ. 2557

การควบคุมข้อความ และนิพจน์ปกติ

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 ตัวอักษร
 mb_strlen() มีตัวเลือกการเข้ารหัสมีไวยากรณ์คือ
int mb_strlen(string input, string encode);
 encode คือ การเข้ารหัส เช่น UTF-8

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


                          การใช้ฟังก์ชันข้อความมีความจำกัดในค้นหา ถ้าต้องทำการจับคู่ซับซ้อนควรใช้นิพจน์ปกติที่มีประสิทธิภาพดีกว่า นิพจน์ปกติเรียนรู้ได้ลำบากในตอนต้นแต่สามารถใช้ประโยชน์ได้มาก

ไม่มีความคิดเห็น:

แสดงความคิดเห็น