W3docs

trim()

La fonction trim() en PHP supprime les espaces ou d'autres caractères spécifiés au début et à la fin d'une chaîne.

Introduction

La fonction trim() en PHP supprime les espaces (ou d'autres caractères que vous spécifiez) des deux extrémités d'une chaîne. C'est l'une des fonctions de chaîne les plus utilisées, car le texte provenant de formulaires, de fichiers et de requêtes HTTP arrive presque toujours avec des espaces, tabulations ou sauts de ligne parasites autour de lui.

Ce chapitre couvre la syntaxe, les caractères que trim() supprime par défaut, comment supprimer votre propre jeu de caractères personnalisé, comment trim() diffère de ltrim() et rtrim(), et les erreurs les plus courantes à éviter.

Syntaxe

trim(string $string, string $characters = " \n\r\t\v\x00"): string
ParamètreDescription
$stringLa chaîne d'entrée à élaguer.
$charactersFacultatif. L'ensemble de caractères à supprimer. S'il est omis, le jeu d'espaces par défaut est utilisé.

La fonction retourne une nouvelle chaîne élaguée — elle ne modifie pas la $string d'origine (les chaînes en PHP sont passées par valeur).

Par défaut, trim() supprime ces caractères des deux extrémités :

CaractèreSignification
" "Un espace ordinaire
"\t"Une tabulation
"\n"Un saut de ligne
"\r"Un retour chariot
"\0"L'octet NUL
"\x0B" (\v)Une tabulation verticale

Exemple de base

Supprimer les espaces de début et de fin d'une chaîne :

php— editable, runs on the server

Les crochets sont affichés uniquement pour rendre le résultat visible — ils prouvent que les espaces des deux côtés ont disparu tandis que l'espace intérieur (Hello, world!) est conservé.

Suppression de caractères personnalisés

Le second argument vous permet de choisir exactement quels caractères supprimer. C'est pratique pour nettoyer les délimiteurs, les barres obliques ou les guillemets :

<?php

echo trim("xxxHello worldxxx", "x"), "\n"; // Hello world
echo trim("/var/www/html/", "/"), "\n";    // var/www/html
echo trim("###Section###", "#"), "\n";     // Section

Vous pouvez passer plusieurs caractères à la fois — trim() supprime n'importe lequel d'entre eux à chaque extrémité jusqu'à ce qu'il rencontre un caractère qui n'est pas dans l'ensemble :

<?php

echo trim("**[Note]**", "*[]"); // Note

Notez que seules les extrémités sont affectées : les crochets à l'intérieur de la chaîne restent intacts, tout comme l'espace intérieur dans le premier exemple.

Plages de caractères avec ".."

Dans l'argument $characters, vous pouvez spécifier une plage avec deux points. Par exemple, pour supprimer les caractères de contrôle ASCII :

<?php

$dirty = "\x01\x02Hello\x03";
echo trim($dirty, "\x00..\x1F"); // Hello

trim() vs ltrim() vs rtrim()

trim() agit sur les deux extrémités. Lorsque vous ne voulez agir que d'un côté, utilisez ses fonctions sœurs :

FonctionÉlague depuis
trim()les deux extrémités
ltrim()la gauche (début) uniquement
rtrim()la droite (fin) uniquement
<?php

$value = "...data...";

echo trim($value, "."),  "\n";  // data
echo ltrim($value, "."), "\n";  // data...
echo rtrim($value, "."), "\n";  // ...data

Cas d'utilisation courant : nettoyage des entrées utilisateur

trim() est le plus utile lors de la validation des entrées de formulaire. Un utilisateur peut taper un espace après son adresse e-mail ou laisser le champ vide avec seulement des espaces. Élaguer en premier rend ces vérifications fiables :

<?php

$username = "  alice  ";
$username = trim($username);

if ($username === "") {
    echo "Username is required.";
} else {
    echo "Welcome, " . $username . "!"; // Welcome, alice!
}

Sans l'appel à trim(), une valeur de " " (uniquement des espaces) passerait un test if (!empty($username)) même si elle est effectivement vide.

Pièges courants

  • Elle retourne une valeur ; elle ne mute pas. trim($string); seul ne fait rien d'utile — vous devez assigner le résultat : $string = trim($string);.
  • L'ensemble personnalisé est une liste, pas une sous-chaîne. trim("Hello", "Helo") supprime chaque caractère de début/fin qui apparaît dans "Helo", pas le mot littéral — donc cela peut consommer plus que prévu.
  • Caractères multi-octets. trim() opère sur les octets, pas sur les points de code Unicode. Pour supprimer les espaces multi-octets, utilisez un ensemble personnalisé ou une expression régulière à la place.
  • Elle n'affecte que les extrémités. Pour supprimer des caractères partout, utilisez str_replace() ou preg_replace() à la place.

Conclusion

La fonction trim() est l'outil de référence pour nettoyer les bords d'une chaîne — les espaces par défaut, ou tout jeu de caractères que vous fournissez. Combinée à ses fonctions sœurs unilatérales ltrim() et rtrim(), elle rend la validation des entrées et la normalisation des chaînes simples et prévisibles.

Pour continuer à apprendre la gestion des chaînes en PHP, consultez PHP Strings, str_replace(), explode() et str_pad().

Pratique

Pratique
Que fait la fonction PHP trim() ?
Que fait la fonction PHP trim() ?
Was this page helpful?