Bagaimana saya bisa mendapatkan 7 karakter terakhir dari string PHP?


278

Bagaimana cara saya meraih 7 karakter terakhir dari string di bawah ini?

Sebagai contoh:

$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;

Yang akan ditampilkan:

The new string is: 5409els


8
The Pertanyaan diidentifikasi sebagai dup suatu tidak benar-benar sama dengan pertanyaan ini sama sekali.
— Asaf

13
Sungguh ironis bahwa saya dibawa ke sini ketika mencari Google untuk topik ini. sigh
— LeonardChallis

5
@ Asaf saya sebut ini tumpukan mempengaruhi. Orang mencoba apa saja untuk menutup pertanyaan, hal pertama yang akan mereka lakukan adalah menandainya sebagai dup hanya demi menandai itu
— twigg

5
Jauh lebih mudah dan lebih cepat untuk mencari masalah di Google dan menemukan sederet kode dalam jawaban di SO daripada membaca manual.
— Engin Yapici

Jawaban:


597

Gunakan substr()dengan angka negatif untuk argumen ke-2.

$newstring = substr($dynamicstring, -7);

Dari dokumen php :

string substr ( string $string , int $start [, int $length ] )

Jika mulai negatif, string yang dikembalikan akan mulai pada karakter start'th dari akhir string.


Tetapi jika $ dynamicstring kurang dari 7 karakter, $ newstring akan kosong. (setidaknya pada PHP 5.2.6)
— Scott Chu

Anda selalu dapat melakukan pemeriksaan dengan strlen terlebih dahulu untuk melihat apakah jumlah karakter lebih besar dari atau sama dengan 7.
— PBwebD


14

Hasil yang lebih aman untuk bekerja dengan kode karakter multibyte, selalu menggunakan mb_substr sebagai gantinya substr. Contoh untuk 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') ;

11

Akan lebih baik memiliki cek sebelum mendapatkan string.

$newstring = substr($dynamicstring, -7);

jika karakter lebih besar dari 7 mengembalikan 7 karakter terakhir kembalikan string yang disediakan.

atau lakukan ini jika Anda perlu mengembalikan pesan atau kesalahan jika panjangnya kurang dari 7

$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";

dokumentasi substr


Saya pikir bagian lain diperlukan untuk memberikan pesan kembali. Sesuatu seperti data tidak valid dimasukkan atau ..
— Neri

1
Ini mungkin jawaban terbaik, satu-satunya hal yang mungkin membuatnya lebih baik adalah referensi ke manual php.
— Mark Carpenter Jr

2

Untuk kesederhanaan, jika Anda tidak ingin mengirim pesan, coba ini

$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );

0

untuk 7 karakter terakhir

$newstring = substr($dynamicstring, -7);

$ newstring: 5409els

untuk 7 karakter pertama

$newstring = substr($dynamicstring, 0, 7);

$ newstring: 2490slk


-1

7 karakter terakhir dari string:

$ rest = substr ("abcdefghijklmnop", -7); // mengembalikan "jklmnop"

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.