Page 1 sur 1

traiter chaine

Posté : 15 mai 2007, 17:46
par Invité
Bonjour a tous,

J'utilise ceci pour traiter une chaine
$chaine = "abcdef";
$chaine = substr($chaine, -2);
ça me retourne "ef" comme prévu. mais comment faire pour que le traitement retourne "abcd" au lieu de "ef"?

En gros, je voudrais enlever les 2 derniers caractères d'une chaine(quelsqu'ils soient), et récupérer la chaine en retour, aulieu d'avoir les caractères qui ont été supprimés.

Merci pour vos réponses.

Posté : 15 mai 2007, 17:52
par Ryle
Tu as plusieurs solutions... selon ce que tu préfères, tu peux avec strlen() tu peux connaitre la taille de ta chaine. Tu peux ainsi utiliser substr() à partir du caractère 0 jusqu'à la fin de ta chaine, moins deux caractères, ce que l'on fait généralement dans les autres langages :)

Ou bien tu peux profiter des index négatif de php comme tu le fais, simplement en spécifiant que tu commences à partir de l'index 0 (début de ta chaine) jusqu'à l'index -2 (soit l'avant dernier caractère de ta chaine)
$rest = substr("abcdef", 0, -2);  // retourne "abcd"