Devdit
 

แก้ปัญหา PHP ตัดข้อความยาวๆ แล้วเป็นภาษาต่างดาว

3.1K

ใช้คำสั่ง substr เพื่อตัดข้อความยาวๆ ออกพอรันแล้ว ภาษาอังกฤษใช้ได้ปกติ แต่ภาษาไทยขึ้นข้อความต่างดาวตรงสระ ต้องแก้ไขอย่างไร โค้ดตามด้านล่าง

<?php
    $message = "ส้ม มะละกอ กล้วยส้ม ส้ม มะละกอ กล้วยส้ม";

    $message = substr( $message, 0, 40 );
    echo $message;
?>

ผลลัพธ์

ส้ม มะละกอ กล้��

 

วิธีแก้ไข

กรณีต้องการตัดข้อความภาษาไทยยาวๆ แนะนำให้ลองใช้คำสั่ง mb_strimwidth แทนซึ่งจะรองรับจำนวนการตัดข้อความที่ต้องการ พร้อมกับสามารถใส่ข้อความส่วนด้านหลังได้ เช่น … สามารถเขียนโปรแกรมได้ดังนี้

<?php
    $message = "ส้ม มะละกอ กล้วยส้ม ส้ม มะละกอ กล้วยส้ม";
    $message = mb_strimwidth( $message, 0, 20, '...' );
    echo $message;
?>

ผลลัพธ์

ส้ม มะละกอ กล้วยส...
เขียน 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ