ทบทวนการตัดข้อความด้วย PHP
เขียนเมื่อ 14 ปีก่อน โดย Ninenik Narkdeeตัดข้อความ อักษรซ้ำ ตัดตัวอักษร แยกข้อความ ข้อความ แยกตัวอักษร php ตัดตัวซ้ำ
คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ ตัดข้อความ อักษรซ้ำ ตัดตัวอักษร แยกข้อความ ข้อความ แยกตัวอักษร php ตัดตัวซ้ำ
เมื่อต้องการตัดข้อความบางส่วนออกจากข้อความต้นฉบับ สามารถใช้ฟังก์ชัน 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); // จะได้ผลลัพธ์เป็น "วันนี้ทดสอบ" ?>
เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 19-10-2017
$text = "This is a test"; $arr_char = str_split($text); print_r($arr_char);
Array ( [0] => T [1] => h [2] => i [3] => s [4] => [5] => i [6] => s [7] => [8] => a [9] => [10] => t [11] => e [12] => s [13] => t )
$text = "This is a test"; $arr_char = str_split($text,3); print_r($arr_char);
Array ( [0] => Thi [1] => s i [2] => s a [3] => te [4] => st )
$text = "ภาษาไทย"; preg_match_all('/./u',$text,$arr_char); print_r($arr_char);
Array ( [0] => Array ( [0] => ภ [1] => า [2] => ษ [3] => า [4] => ไ [5] => ท [6] => ย ) )
เพิ่มเติมเนื้อหา ครั้งที่ 2 วันที่ 23-10-2017
การตัดตัวอักษรซ้ำ ตัวอักขระซ้ำ อักษรที่เกินให้เหลือตัวเดียว
ทดสอบบบบ
- ถ้ามีตัวซ้ำมากกว่า 1 ตัวขึ้นไป
- ถ้ามีตัวซ้ำมากกว่า n ตัวขึ้นไป
<?php $text = "วันนี้ทดสอบบบ"; $text = preg_replace('/(.)\1+/u','$1',$text); echo $text; // จะได้เป็น "วันี้ทดสอบ"
<?php $text = "วันนี้ทดสอบบบ"; $text = preg_replace('/(.)\1{2,}/u','$1',$text);echo $text; echo $text; // จะได้เป็น "วันนี้ทดสอบ"
<?php $text = "ววววันนี้ทดสอบบบบ"; $text = preg_replace('/(.)\1{3,}/u','$1',$text);echo $text; echo $text;
