วิธีแก้ปัญหา PHP ตัดข้อความด้วย substr แล้วเป็น สี่เหลี่ยม

            เป็นเรื่องปกติที่หลายๆคนจะต้องจัดหน้าเว็บไซต์ให้สวยงามเป็นระเบียบ สำหรับการจัดการ string ที่มันยาวไม่เท่ากันให้มันยาวเท่ากันนั้นก็เป็นอีกวิธีหนึ่ง โดยปกติก็ตัดกันง่ายๆ ด้วยฟังก์ชั่น substr() แต่หากฐานข้อมูลเป็นฟอร์แมตแบบ UTF-8 จะต้องพบกับปัญหาหนึ่งคือ ตัวสุดท้ายที่ตัดจะกลายเป็นสี่เหลี่ยมแปลกๆ  วิธีแก้คือต้องใช้ function ที่ทำงานกับข้อความที่เป็น Multi-byte ดังนี้ครับ

จากปกติใช้ฟังก์ชั่น substr(string,start,length);
ให้เปลี่ยนเป็นฟังก์ชั่นนี้ mb_substr(string,start,length);
หรือฟังก์ชั่นนี้ก็ได้ครับ iconv_substr($msg, 0,150, "UTF-8");


PHP Like