Як би я міг захопити останні 7 символів рядка нижче?
Наприклад:
$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;
Що б відображало:
The new string is: 5409els
Як би я міг захопити останні 7 символів рядка нижче?
Наприклад:
$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;
Що б відображало:
The new string is: 5409els
Відповіді:
Використовуйте substr()
з від’ємним числом для 2-го аргументу.
$newstring = substr($dynamicstring, -7);
З Документів PHP :
string substr ( string $string , int $start [, int $length ] )
Якщо старт негативний, повернута рядок починається з символу start'th з кінця рядка.
Більш безпечні результати роботи з багатобайтовими кодами символів, завжди використовуйте 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') ;
Було б краще пройти чек, перш ніж отримати рядок.
$newstring = substr($dynamicstring, -7);
якщо символів більше, ніж 7 повернути останні 7 символів, ще повернути наданий рядок.
або зробіть це, якщо вам потрібно повернути повідомлення або помилку, якщо довжина менше 7
$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";
Для простоти, якщо ви не хочете надсилати повідомлення, спробуйте це
$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );