เพื่อนๆ หลายคนคงจะเจอปัญหาเกี่ยวกับการจำกัดความยาวที่เอามาแสดงเป็นหัวข้อสินค้า หรือ ประกาศภายในเว็บของเรา ซี่งถ้าใช้ PHP แล้วส่วนใหญ่จะใช้ฟ้งก์ชัน substr() แต่ผลที่ตามมาก็คือ มีเครื่องหมายสี่เหลี่ยมโผล่แถมมากับบางหัวข้อซะงั้น
<?php
header('Content-Type: text/html; charset=utf-8;');
$str = 'ลงประกาศใหม่';
echo substr($str, 0, 26);
?>
แล้ววิธีแก้ไขทำไงล่ะ ถึงคิวของพระเอกอย่าง 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 ที่เราใช้ด้วยนะครับ