ฉันจะคว้าตัวละคร 7 ตัวสุดท้ายของสตริงด้านล่างได้อย่างไร
ตัวอย่างเช่น:
$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;
ซึ่งจะแสดง:
The new string is: 5409els
ฉันจะคว้าตัวละคร 7 ตัวสุดท้ายของสตริงด้านล่างได้อย่างไร
ตัวอย่างเช่น:
$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;
ซึ่งจะแสดง:
The new string is: 5409els
คำตอบ:
ใช้substr()
กับจำนวนลบสำหรับอาร์กิวเมนต์ที่ 2
$newstring = substr($dynamicstring, -7);
จากphp docs :
string substr ( string $string , int $start [, int $length ] )
หาก start เป็นค่าลบสตริงที่ส่งคืนจะเริ่มต้นที่อักขระ start'th จากจุดสิ้นสุดของสตริง
ผลลัพธ์ที่ปลอดภัยยิ่งขึ้นสำหรับการทำงานกับรหัสอักขระหลายไบต์ allways ใช้ mb_substr แทน substr ตัวอย่างสำหรับ utf-8:
$str = 'Ne zaman seni düşünsem';
echo substr( $str, -7 ) . ' <strong>is not equal to</strong> ' .
mb_substr( $str, -7, null, 'UTF-8') ;
มันจะดีกว่าที่จะมีการตรวจสอบก่อนที่จะรับสาย
$newstring = substr($dynamicstring, -7);
ถ้าตัวอักษรมากกว่า 7 ส่งคืน 7 ตัวอักษรตัวสุดท้ายจะส่งกลับสตริงที่ระบุ
หรือทำสิ่งนี้หากคุณต้องการส่งคืนข้อความหรือข้อผิดพลาดหากความยาวน้อยกว่า 7
$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";
เพื่อความง่ายถ้าคุณไม่ต้องการส่งข้อความให้ลองทำสิ่งนี้
$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );
สำหรับ 7 อักขระสุดท้าย
$newstring = substr($dynamicstring, -7);
$ newstring: 5409els
สำหรับอักขระ 7 ตัวแรก
$newstring = substr($dynamicstring, 0, 7);
$ newstring: 2490slk
อักขระ 7 ตัวสุดท้ายของสตริง:
$ rest = substr ("abcdefghijklmnop", -7); // ส่งคืน "jklmnop"