traiter chaine

Invité
Invité n'ayant pas de compte PHPfrance

15 mai 2007, 17:46

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 mai 2007, 17:52

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"
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...