web-dev-qa-db-fra.com

Comment puis-je obtenir les 7 derniers caractères d'une chaîne PHP?

Comment pourrais-je m'emparer des 7 derniers caractères de la chaîne ci-dessous?

Par exemple:

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

Ce qui afficherait:

The new string is: 5409els
238
Dave

Utilisez substr() avec un nombre négatif pour le deuxième argument.

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

Depuis le php docs :

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

Si start est négatif, la chaîne renvoyée commencera au début du dernier caractère à partir de la fin de la chaîne.

530
Asaph

euh .. comme ça?

$newstring = substr($dynamicstring, -7);
70
Vitaly Muminov

Des résultats plus sûrs pour l'utilisation de codes de caractères multi-octets, utilisez toujours mb_substr à la place de substr. Exemple pour 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') ;
12
MERT DOĞAN

Il serait préférable d'avoir un contrôle avant d'obtenir la chaîne.

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

si les caractères sont supérieurs à 7, les 7 derniers caractères sont renvoyés, sinon la chaîne fournie est renvoyée.

ou le faire si vous devez renvoyer un message ou une erreur si la longueur est inférieure à 7

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

sous-documentation

10
Abdul Manan

Pour plus de simplicité, si vous ne voulez pas envoyer de message, essayez ceci.

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

pour les 7 derniers caractères

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

$ newstring: 5409els

pour les 7 premiers personnages

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

$ newstring: 2490slk

0
developper