2012-05-10 12 views
168

¿Cómo podría obtener los últimos 7 caracteres de la cadena a continuación?¿Cómo puedo obtener los últimos 7 caracteres de una cadena de PHP?

Por ejemplo:

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

lo que la pantalla:

The new string is: 5409els 
+9

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

+2

[¿Ha buscado antes de preguntar?] (Https://www.google.com/search?btnG=1&pws=0&q=php+ get + last + characters + of + string & safe = active) –

+0

Pasé unos buenos 10 minutos buscando. ¡Sabía que esto era mucho más fácil de lo que pensaba! – Dave

Respuesta

397

Use substr() con un número negativo para el segundo argumento.

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

Desde el php docs:

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

Si comienzo es negativo, la cadena devuelta comenzará en el carácter start'th desde el final de la cadena.

+0

Pero si $ dynamicstring tiene menos de 7 caracteres, $ newstring estará vacío. (al menos en PHP 5.2.6) –

+0

Siempre se puede verificar con strlen primero para ver si el número de caracteres es mayor o igual que 7. – testing123

60

UMH .. así?

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

fuiste más rápido :) – milkovsky

3

Sería mejor tener un control antes de obtener la cadena.

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

si los caracteres son mayores que 7 regresan los últimos 7 caracteres más, devuelva la cadena proporcionada.

+0

Creo que la parte else es necesaria para devolver un mensaje. Algo así como datos inválidos ingresados ​​o ... – Neri

+0

else parte significa que el caracter es menor que 7, así que devuélvala –

+1

Esta es probablemente la mejor respuesta, lo único que podría mejorarla es una referencia al manual php. –

7

Los resultados más seguros para trabajar con códigos de caracteres multibyte, siempre usan mb_substr en su lugar substr. Ejemplo para 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;

Cuestiones relacionadas