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
Dave
sumber
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.

Asaf
sumber
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
73

umh .. seperti itu?

$newstring = substr($dynamicstring, -7);
Vitaly Muminov
sumber
6
Anda lebih cepat :)
milkovsky
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') ;
MERT DOĞAN
sumber
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

Abdul Manan
sumber
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 ) );
mariovials
sumber
0

untuk 7 karakter terakhir

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

$ newstring: 5409els

untuk 7 karakter pertama

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

$ newstring: 2490slk

pengembang
sumber
-1

7 karakter terakhir dari string:

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

keerthi
sumber