ตัดข้อความภาษาไทยใน php ไม่ให้มีเครื่องหมายสี่เหลี่ยม

ตัดข้อความภาษาไทยใน-php
ตัดข้อความภาษาไทยใน-php

ตัดข้อความภาษาไทยใน php ไม่ให้มีเครื่องหมายสี่เหลี่ยม



ตัดข้อความภาษาไทยใน php ไม่ให้มีเครื่องหมายสี่เหลี่ยม

ในภาษา PHP จะมีคำสั่งอยู่คำสั่งหนึ่งคือ substr ไว้สำหรับตัดข้อความ ในกรณีที่เราไม่ต้องการให้แสดงข้อความเต็มทั้งหมด มักจะนำไปใช้สำหรับการจำกัดจำนวนตัวอักษรของหัวข้อกระทู้แบบย่อ เนื้อหาแบบย่อ เป็นต้น

ตัวอย่างเช่น ในหน้าแสดงรายการกระทู้ หัวข้อที่ถูกสร้างอาจจะมีความยาวเกินไปเวลาที่แสดงบนเว็บไซต์ทำให้รูแบบการแสดงผลไม่เป็นไปตามดีไซน์ ไม่สวยงาม คำสั่ง substr จะสามารถกำหนดจำนวนตัวอักษรให้เหมาะสมกับรูปแบบที่กำหนดไว้


ใช้คำสั่ง iconv_substr แทนคำสั่ง substr

สำหรับการตัดคำภาษาไทยในภาษา PHP เราจำเป็นจะต้องใช้คำสั่ง iconv_substr แทนคำสั่ง substr เนื่องจากจะมีความแม่นยำของการจำนวนอักขระ ไม่มีอักขระพิเศษเกินมา เหตุผลเพราะคำสั่ง iconv_substr สามารถกำหนด charset ในการนับอักขระให้เป็นแบบ UTF-8 ซึ่งรองรับภาษาไทยอยู่แล้วได้ ตัวอย่างการทำงานของทั้ง 2 คำสั่งสำหรับภาษาไทย

  • คำสั่ง substr เมื่อทำงานกับภาษาไทย
    $content = "พีเอชพีกับวิธีตัดข้อความภาษาไทยแบบไม่ให้มีเครื่องหมายสีเหลี่ยม";
    $new_content = substr($content,0,50);
    echo $new_content;

    ผลลัพธ์ที่ได้เมื่อใช้คำสั่ง substr

    พีเอชพีกับวิธีตั��

    จะเห็นว่ามีข้อผิดพลาดสำหรับการนับอักขระภาษาไทย ในโค๊ดตัวอย่างเราต้องการให้ตัดเนื้อหาภาษาไทยตั้งแต่อักขระตัวแรกไปจนถึงอักขระตัวที่ 50 แต่ผลลัพธ์ที่ได้คือนับมาแค่ 16 ตัวอักษร และมีอักขระพิเศษเกินมา

  • คำสั่ง iconv_substr เมื่อทำงานกับภาษาไทย
    $content = "พีเอชพีกับวิธีตัดข้อความภาษาไทยแบบไม่ให้มีเครื่องหมายสีเหลี่ยม";
    $new_content = iconv_substr($content,0,50,'UTF-8');
    echo $new_content;

    ผลลัพธ์ที่ได้เมื่อใช้คำสั่ง iconv_substr

    พีเอชพีกับวิธีตัดข้อความภาษาไทยแบบไม่ให้มีเครื่องห

    จะเห็นว่าคำสั่ง iconv_substr สามารถทำงานได้อย่างถูกต้อง