iconv_substr อีกหนึ่งตัวช่วยของ PHP ในการจำกัดขนาดข้อความภาษาไทยที่ไม่ให้มีเครื่องหมายสี่เหลี่ยม

เพื่อนๆ หลายคนคงจะเจอปัญหาเกี่ยวกับการจำกัดความยาวที่เอามาแสดงเป็นหัวข้อสินค้า หรือ ประกาศภายในเว็บของเรา ซี่งถ้าใช้ PHP แล้วส่วนใหญ่จะใช้ฟ้งก์ชัน substr() แต่ผลที่ตามมาก็คือ มีเครื่องหมายสี่เหลี่ยมโผล่แถมมากับบางหัวข้อซะงั้น

<?php
header('Content-Type: text/html; charset=utf-8;');
$str = 'ลงประกาศใหม่';

echo substr($str, 0, 26);
?>

square-charแล้ววิธีแก้ไขทำไงล่ะ ถึงคิวของพระเอกอย่าง iconv_substr แล้ว ^^ จากโค้ดข้างบนก็เปลี่ยนไปใช้ iconv_substr() แทนครับ

<?php
header('Content-Type: text/html; charset=utf-8;');
$str = 'ลงประกาศใหม่';

echo iconv_substr($str, 0, 26, 'utf-8');
?>

ซึ่ง parameter ตัวที่ 4 (‘utf-8’) จะต้องตรงกลับ charset ที่เราใช้ด้วยนะครับ