2012-05-10 40 views
168

Làm cách nào để tôi lấy về 7 ký tự cuối cùng của chuỗi bên dưới?Làm cách nào để có được 7 ký tự cuối cùng của một chuỗi PHP?

Ví dụ:

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

nào sẽ hiển thị:

The new string is: 5409els 
+9

http://php.net/manual/en/function.substr.php – PeeHaa

+2

[bạn đã tìm kiếm trước khi yêu cầu?] (Https://www.google.com/search?btnG=1&pws=0&q=php+ get + last + characters + of + string & safe = active) –

+0

Tôi đã dành 10 phút để tìm kiếm. Tôi biết điều này dễ hơn tôi tưởng! – Dave

Trả lời

397

Sử dụng substr() với số âm cho đối số thứ 2.

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

Từ php docs:

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

Nếu bắt đầu là tiêu cực, chuỗi trả về sẽ bắt đầu từ nhân vật start'th từ ngày kết thúc chuỗi.

+0

Nhưng nếu $ dynamicstring nhỏ hơn 7 ký tự, $ newstring sẽ trống. (ít nhất là trên PHP 5.2.6) –

+0

Bạn luôn có thể kiểm tra với strlen trước để xem số lượng ký tự lớn hơn hay bằng 7. – testing123

60

cho Walt Disney .. như vậy?

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

bạn đã nhanh hơn :) – milkovsky

3

Sẽ tốt hơn nếu bạn có séc trước khi nhận chuỗi.

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

nếu ký tự lớn hơn 7 trở lại 7 ký tự khác trả về chuỗi được cung cấp.

+0

Tôi nghĩ rằng phần còn lại là cần thiết để gửi lại tin nhắn. Một cái gì đó giống như dữ liệu không hợp lệ được nhập hoặc .. – Neri

+0

phần khác có nghĩa là ký tự ít hơn 7 vì vậy trả lại nó –

+1

Đây có lẽ là câu trả lời hay nhất, chỉ điều có thể làm cho nó tốt hơn là tham chiếu đến hướng dẫn sử dụng php. –

7

Kết quả an toàn hơn để làm việc với mã ký tự nhiều byte, allways sử dụng mb_substr thay thế nền. Ví dụ cho 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') ; 

retrun TRUE;

Các vấn đề liên quan