เมื่อต้องการตัดข้อความบางส่วนออกจากข้อความต้นฉบับ สามารถใช้ฟังก์ชัน substr() ของ PHP ในการตัดข้อความ ดังนี้
การใช้งาน
substr ( string string, int start [, int length] )
โดยคำสั่ง substr() จะส่งกลับค่าส่วนของข้อความ string ที่กำหนดจุดเริ่มต้น start และ จำนวนความยาวที่ต้องการ length
ตัวอย่างการใช้งานกรณี start มีค่าไม่เป็นลบ
<?php $rest = substr("abcdef", 1); // returns "bcdef" $rest = substr("abcdef", 1, 3); // returns "bcd" $rest = substr("abcdef", 0, 4); // returns "abcd" $rest = substr("abcdef", 0, 8); // returns "abcdef" ?>
ตัวอย่างการใช้งานกรณี start มีค่าติดลบ จะเริ่มนับจากด้านหลังของข้อความเข้ามา เช่น -3 หมายถึงเริ่มจากตัวที่ 3 โดยนับจากด้านหลังข้อความ
<?php $rest = substr("abcdef", -1); // returns "f" เริ่มนับจากตัว f $rest = substr("abcdef", -2); // returns "ef" เริ่มนับจากตัว e $rest = substr("abcdef", -3, 1); // returns "d" เริ่มนับจากตัว d ?>
ตัวอย่างกรณีถ้าค่า start มากกว่า ความยาวของข้อความต้นฉบับ จะส่งค่ากลับเป็น FALSE
<?php $rest = substr("abcdef", 8,4); // returns FALSE ข้อความยาวแค่ 6 ตัวอักษร // แต่ค่า start เป็น 8 มากกว่าความยาวของค่าความจึงส่งค่ากลับมาเป็น FALSE ?>
กรณีค่า length มีค่าเป็นบวก หมายถึงจำนวนข้อความที่ต้องการตัดเท่ากับค่า length นั้นๆ
กรณีค่า length มีค่าเป็นลบ หมายถึงการระบุตำแหน่งสุดท้ายของข้อความที่ต้องการ โดยตัดข้อความที่นับจากด้านหลังออก เช่น -1 หมายถึงนับจากตัวสุดท้ายมา 1 ตัวให้ตัดออกไป
ตัวอย่างกรณีค่า length มีค่าเป็นลบ
<?php $rest = substr("abcdef", 0, -1); // returns "abcde" // ตัดข้อความจากตัวแรก a ไปจนถึง ตัว e โดยตัดข้อความที่นับจากหลังมา 1 ตัวออกไป $rest = substr("abcdef", 2, -1); // returns "cde" $rest = substr("abcdef", 4, -4); // returns "" $rest = substr("abcdef", -3, -1); // returns "de" ?>
<?php $text = "วันนี้ทดสอบบบ"; echo mb_substr($text,0,-2); // จะได้ผลลัพธ์เป็น "วันนี้ทดสอบ" ?>