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.