chop()
La fonction PHP chop() supprime les espaces ou autres caractères à la fin d'une string et retourne le résultat.
La fonction PHP chop() supprime les espaces (ou d'autres caractères spécifiés) à la fin (côté droit) d'une string et retourne le résultat. Elle ne touche pas le début de la string et ne modifie jamais la variable d'origine — elle retourne une nouvelle string.
Cette page couvre la syntaxe de chop(), les caractères qu'elle supprime par défaut, comment passer un masque de caractères personnalisé, et les pièges courants à surveiller.
chop() est un alias de rtrim()
La chose la plus importante à savoir : chop() est simplement un alias de rtrim(). Les deux fonctions ont un comportement identique — chop est l'ancien nom (familier aux développeurs Perl), tandis que rtrim (« trim à droite ») est le plus descriptif. Les nouveaux projets préfèrent généralement rtrim(), mais vous verrez encore chop() dans les bases de code existantes.
Si vous avez besoin de supprimer des caractères du côté gauche, utilisez ltrim() ; pour supprimer des deux côtés, utilisez trim().
Syntaxe
chop(string $string, string $characters = " \n\r\t\v\0"): stringLa fonction accepte un ou deux paramètres :
$string— la string à rogner.$characters(optionnel) — une liste de caractères à supprimer de la fin. Lorsqu'il est omis,chop()supprime les caractères d'espacement par défaut listés ci-dessous.
Elle retourne la string rognée. L'entrée est passée par valeur, donc $string lui-même reste inchangé.
Caractères supprimés par défaut
Lorsque vous appelez chop() avec un seul argument, elle supprime ces caractères de la fin :
| Caractère | Signification |
|---|---|
" " | espace ordinaire |
"\t" | tabulation |
"\n" | saut de ligne (line feed) |
"\r" | retour chariot |
"\0" | octet NUL |
"\v" | tabulation verticale |
Supprimer les espaces en fin de string
L'utilisation la plus courante est de nettoyer les espaces, tabulations ou sauts de ligne en fin de string — par exemple, après la lecture d'une ligne depuis un fichier :
On ajoute un | pour rendre la limite du rognage visible. Sortie :
Hello, World!|Les espaces en fin de string ont disparu, tandis que tout ce qui les précède est intact.
Utiliser un masque de caractères
Passez un second argument pour supprimer un ensemble personnalisé de caractères au lieu des espaces. Chaque caractère du masque est supprimé de la fin, de manière répétée, jusqu'à ce qu'un caractère absent du masque soit atteint :
Sortie :
Hello, WorLe masque "ld!" est un ensemble de caractères, pas une sous-chaîne. En lisant depuis la droite, !, d, l, puis d font tous partie de l'ensemble et sont supprimés ; r n'y figure pas, donc le rognage s'arrête là.
Plages de caractères avec ..
À l'intérieur du masque, vous pouvez exprimer une plage avec deux points. Par exemple, "0..9" signifie « n'importe quel chiffre », ce qui supprime tous les nombres en fin de string :
<?php
echo chop("order100200", "0..9");
?>Sortie :
orderPièges courants
- Elle ne rogne que les extrémités, pas le milieu.
chop("a b ")retourne"a b"— les espaces entreaetbrestent. - Le masque est un ensemble de caractères, pas un suffixe littéral.
chop("Hello, World!", "Hd")retourne la string inchangée, car le dernier caractère!n'est pas dans l'ensembleH/d, donc le rognage ne commence jamais. - Elle ne modifie pas la variable d'origine. Assignez toujours ou utilisez la valeur de retour :
$clean = chop($raw);.
Quand l'utiliser
Utilisez chop() / rtrim() chaque fois que des caractères en fin de string risquent de fausser une comparaison ou un affichage :
- Supprimer le saut de ligne en fin d'une ligne lue avec
fgets(). - Nettoyer les saisies utilisateur avant de les stocker.
- Supprimer un slash final d'un chemin ou d'une URL :
rtrim($path, "/").
Pour remplacer des caractères n'importe où dans une string (pas seulement aux extrémités), utilisez plutôt str_replace().