ltrim()
Notre article présente la fonction PHP ltrim(), utilisée pour supprimer les espaces ou d'autres caractères spécifiés au début d'une chaîne de caractères.
La fonction PHP ltrim() supprime les espaces (ou d'autres caractères spécifiés) du côté gauche — le début — d'une chaîne. Le « l » signifie left (gauche en anglais). C'est le pendant de rtrim(), qui supprime à droite, et de trim(), qui supprime des deux côtés.
ltrim() est particulièrement utile lorsque vous devez normaliser des données que vous ne contrôlez pas totalement : espaces en début de champ de formulaire, zéros non significatifs dans des identifiants, ou séparateurs résiduels après une division ou une concaténation de chaînes.
Syntaxe
ltrim(string $string, string $characters = " \n\r\t\v\0"): string| Paramètre | Description |
|---|---|
$string | La chaîne d'entrée à rogner. |
$characters | Optionnel. L'ensemble des caractères à supprimer. Chaque caractère est traité individuellement — l'ordre n'a pas d'importance. En cas d'omission, l'ensemble d'espaces par défaut est utilisé. |
La fonction retourne une nouvelle chaîne ; l'originale n'est jamais modifiée (les chaînes PHP sont passées par valeur).
L'ensemble de caractères par défaut
Lorsque vous appelez ltrim() avec un seul argument, elle supprime ces caractères à gauche :
" "(espace ordinaire)"\t"(tabulation)"\n"(saut de ligne)"\r"(retour chariot)"\0"(octet NUL)"\v"(tabulation verticale)
Supprimer les espaces en début de chaîne
L'utilisation la plus courante consiste à nettoyer les espaces de début :
Résultat :
[Hello World! ]Remarquez que les espaces en fin de chaîne restent présents — ltrim() ne touche que le côté gauche. Les crochets [ et ] sont ajoutés uniquement pour rendre les limites visibles dans le résultat.
Supprimer des caractères spécifiques
Passez un deuxième argument pour supprimer un ensemble personnalisé de caractères à la place des espaces. Un cas classique est la suppression des zéros non significatifs :
<?php
echo ltrim("0042", "0"); // 42
echo "\n";
echo ltrim("xxxHello", "x"); // Hello
?>Résultat :
42
HelloL'argument $characters est un ensemble, pas une sous-chaîne. Chaque caractère listé est supprimé indépendamment, donc ltrim($line, ".,") supprime toute combinaison de points et virgules en début de chaîne :
<?php
$line = "...,.,Hello, World";
echo ltrim($line, ".,"); // Hello, World
?>Résultat :
Hello, WorldLa fonction s'arrête au premier caractère qui n'appartient pas à l'ensemble (H ici), laissant la virgule intérieure , dans Hello, World intacte.
Pièges courants
- Ce n'est pas une suppression de sous-chaîne.
ltrim("hello", "he")supprime les caractèreshete, retournant"llo"— elle ne recherche pas le préfixe littéral"he". Pour supprimer un préfixe connu, utilisezstr_replace()sur la première occurrence ousubstr(). - Basée sur les octets, pas sur Unicode.
ltrim()travaille sur les octets, elle peut donc corrompre des caractères UTF-8 multi-octets si vous les listez dans$characters. Pour les caractères ASCII, elle est parfaitement sûre ; pour rogner des caractères multi-octets, utilisez un motifpreg_replace()avec le modificateuru. - Elle retourne une copie. Réassignez le résultat si vous souhaitez le conserver :
$s = ltrim($s);.
Quand utiliser quelle fonction trim
| Besoin | Utiliser |
|---|---|
| Supprimer au début uniquement | ltrim() |
| Supprimer à la fin uniquement | rtrim() |
| Supprimer des deux côtés | trim() |
Pour une vue d'ensemble plus large de la gestion des chaînes en PHP, consultez PHP Strings.