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