Как я могу получить последние 7 символов строки PHP?

Как я мог бы захватить последние 7 символов строки ниже?

Например:

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

Что будет отображаться:

The new string is: 5409els

Ответ 1

Используйте substr() с отрицательным числом для второго аргумента.

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

Из php docs:

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

Если начало отрицательно, возвращаемая строка начинается с символа начала с конца строки.

Ответ 2

umh.. как это?

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

Ответ 3

Более безопасные результаты для работы с многобайтовыми символами, всегда используйте 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') ;

Ответ 4

Было бы лучше проверить перед получением строки.

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

если символы больше, чем 7 возвращают последние 7 символов, в противном случае возвращает предоставленную строку.

или сделайте это, если вам нужно вернуть сообщение или ошибку, если длина меньше 7

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

вспомогательная документация

Ответ 5

Для простоты, если вы не хотите отправлять сообщение, попробуйте это

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