ใช้คำสั่ง substr เพื่อตัดข้อความยาวๆ ออกพอรันแล้ว ภาษาอังกฤษใช้ได้ปกติ แต่ภาษาไทยขึ้นข้อความต่างดาวตรงสระ ต้องแก้ไขอย่างไร โค้ดตามด้านล่าง
<?php
$message = "ส้ม มะละกอ กล้วยส้ม ส้ม มะละกอ กล้วยส้ม";
$message = substr( $message, 0, 40 );
echo $message;
?>
ผลลัพธ์
ส้ม มะละกอ กล้��
วิธีแก้ไข
กรณีต้องการตัดข้อความภาษาไทยยาวๆ แนะนำให้ลองใช้คำสั่ง mb_strimwidth แทนซึ่งจะรองรับจำนวนการตัดข้อความที่ต้องการ พร้อมกับสามารถใส่ข้อความส่วนด้านหลังได้ เช่น … สามารถเขียนโปรแกรมได้ดังนี้
<?php
$message = "ส้ม มะละกอ กล้วยส้ม ส้ม มะละกอ กล้วยส้ม";
$message = mb_strimwidth( $message, 0, 20, '...' );
echo $message;
?>
ผลลัพธ์
ส้ม มะละกอ กล้วยส...