สวัสดีครับ ก่อนอื่นต้องขอโทษด้วยครับที่ผมห่างหายจากการอัพเดทเว็บไซต์ไปนานมากๆ วันนี้ได้โอกาสกลับมาอัพเดท เนื่องเพราะเมื่อวันก่อนได้เขียน PHP ที่จำเป็นต้องทำงานเกี่ยวกับตัวอักษรภาษาไทย (UTF-8) ซึ่งผมต้องการที่จะนับตัวอักษรและตัดออกตามจำนวนที่ต้องการครับ
สำหรับตัวปัญหานั้นคือ โดยทั่วไปเวลาที่ผมต้องการนับตัวอักษร (ทั่วไปจะเป็นภาษาอังกฤษ) ผมจะใช้ฟังก์ชั่น strlen() ตัวนี้ครับ แต่เมื่อพอนำมาใช้กับภาษาไทยแล้วเกิดปัญหาการนับมั่วขึ้นทันที (เข้าใจว่าตัวฟังก์ชั่นจะนับพวกสระและวรรณยุกต์ด้วย)
สำหรับวิธีการแก้ปัญหาคือต้องเลี่ยงไปใช้อีกฟังก์ชั่นแทนครับ นั่นก็คือ mb_strlen()?ซึ่งทำงานได้เหมือนกันแต่จะไม่มีปัญหากับภาษาไทยครับ แต่ต้องใส่ค่าเพิ่มเติมเข้าไปตามด้านล่างเลยครับ
1 |
mb_strlen("สวัสดีครับ","UTF-8") |
เพียงเท่านี้การนับตัวอักษรพยัญชนะภาษาไทยก็สามารถทำได้แบบไม่มีปัญหาแล้วครับ แต่ผมอยากจะแถมให้อีกฟังก์ชั่นครับ จะได้ทำงานกันได้ครบๆ นั่นก็คือ ฟังก์ชั่นที่ใช้ตัดคำภาษาไทยครับ จะได้ไม่มีปัญหาตัดตัวอักษรแล้วเหลือสระไว้ จะทำแสดงผลผิดพลาดครับ นั่นก็คือ mb_substr() นั่นเองครับ ส่วนการใช้งานก็ใช้งานเหมือนกับฟังก์ชั่น substr() เลยครับ
เป็นอย่างไรกันบ้างครับ หวังว่าจะช่วยเพื่อนๆ ที่มีปัญหาการนับคำและตัดคำภาษาไทยเพี้ยนๆ ได้นะครับ สำหรับวันนี้ผมต้องขอตัวไปก่อนนะครับ ไว้โอกาสหน้าจะมาแนะนำเรื่องอะไรกันอีกไว้ติดตามกันนะครับ สวัสดีครับ!
- การสร้าง Class ใน JavaScript - August 26, 2015
- [Showcase] Photoshop แต่งภาพแนว Surrealism – Volcano - May 27, 2015
- [Photoshop Tips] การสร้าง Color Swatches จาก Tone สีของภาพต้นแบบ - March 7, 2015