rtrim()
Article sur la fonction PHP rtrim(), qui supprime les espaces (ou d'autres caractères) à la fin d'une chaîne. Syntaxe, masque et cas d'usage.
La fonction PHP rtrim() supprime les espaces — ou tout autre caractère que vous spécifiez — de l'extrémité droite d'une chaîne. (Le « r » signifie right, c'est-à-dire droite.) Elle retourne une nouvelle chaîne tronquée et laisse la chaîne originale intacte, car les chaînes sont passées par valeur en PHP.
Cette page couvre la syntaxe, les caractères supprimés par défaut, la façon de fournir un masque de caractères personnalisé (y compris les plages), et quand rtrim() est le bon outil par rapport à ses fonctions sœurs ltrim() et trim().
Syntaxe
rtrim(string $string, string $characters = " \n\r\t\v\x00"): string| Paramètre | Requis | Description |
|---|---|---|
$string | Oui | La chaîne d'entrée à tronquer. |
$characters | Non | Une liste de caractères à supprimer de la fin. Si omis, l'ensemble d'espaces par défaut est utilisé. |
Valeur de retour : la chaîne tronquée. La fonction ne modifie jamais $string en place.
Caractères supprimés par défaut
Lorsque vous appelez rtrim() avec un seul argument, elle supprime ces caractères de fin :
| Caractère | Signification |
|---|---|
" " (0x20) | Espace ordinaire |
"\t" (0x09) | Tabulation |
"\n" (0x0A) | Saut de ligne |
"\r" (0x0D) | Retour chariot |
"\0" (0x00) | Octet NUL |
"\v" (0x0B) | Tabulation verticale |
Notez que cet ensemble par défaut n'inclut pas les autres espaces Unicode tels que l'espace insécable (\xA0) ; pour les supprimer, vous devez les lister explicitement dans le masque.
Supprimer les espaces en fin de chaîne
L'utilisation la plus courante consiste à nettoyer les espaces, tabulations et sauts de ligne en fin de chaîne — par exemple après la lecture d'une ligne d'un fichier ou la validation d'une saisie de formulaire.
Le | marque l'endroit où la chaîne se termine désormais, ce qui vous permet de voir que les espaces de fin ont disparu :
Hello World!|Les sauts de ligne et les tabulations sont gérés de la même façon :
<?php
$line = "value\t\r\n";
echo rtrim($line) . '|'; // value|
?>Supprimer des caractères spécifiques avec un masque
Passez un second argument pour supprimer un ensemble de caractères personnalisé à la place des espaces. Chaque caractère listé dans le masque est supprimé de la fin, de manière répétée, jusqu'à ce qu'un caractère absent du masque soit atteint.
<?php
echo rtrim('Hello World...', '.') . "\n"; // Hello World
echo rtrim('/path/to/dir///', '/') . "\n"; // /path/to/dir
echo rtrim('cleanup.txt.bak', '.bak') . "\n"; // cleanup.txt — strips any of '.', 'b', 'a', 'k'
?>La troisième ligne est un piège courant : le masque est un ensemble de caractères individuels, pas une sous-chaîne. '.bak' signifie « supprimer l'un quelconque des caractères ., b, a, k », donc il continue à supprimer jusqu'à atteindre le t dans txt. Si vous avez besoin de supprimer une chaîne de suffixe littérale, utilisez str_replace() ou substr() à la place.
Plages de caractères
Vous pouvez exprimer une plage contiguë avec .. entre deux caractères — pratique pour supprimer tous les chiffres ou lettres en fin de chaîne :
<?php
echo rtrim('item42', '0..9') . "\n"; // item — strips trailing digits 0-9
?>rtrim() vs ltrim() vs trim()
Ces trois fonctions partagent la même signature et les mêmes règles de masque de caractères ; elles ne diffèrent que par le côté de la chaîne qu'elles affectent :
| Fonction | Tronque depuis |
|---|---|
ltrim() | La gauche (début) uniquement |
rtrim() | La droite (fin) uniquement |
trim() | Les deux extrémités |
Utilisez rtrim() spécifiquement lorsque les espaces en début de chaîne sont significatifs mais que les espaces en fin sont indésirables — par exemple, pour préserver l'indentation tout en supprimant les artefacts de fin de ligne.
Résumé
rtrim()supprime les espaces (ou un ensemble de caractères personnalisé) de l'extrémité droite d'une chaîne et retourne le résultat.- Sans second argument, elle supprime l'espace, la tabulation, le saut de ligne, le retour chariot, le NUL et la tabulation verticale.
- Le masque optionnel est un ensemble de caractères, pas un suffixe — pour supprimer une terminaison littérale, utilisez
str_replace(). - Utilisez
ltrim()pour le début ettrim()pour les deux extrémités.