W3docs

strtoupper()

La fonction strtoupper() en PHP convertit toutes les lettres minuscules d'une chaîne en majuscules. Très utile pour normaliser des données.

Introduction

strtoupper() convertit chaque lettre minuscule d'une chaîne en majuscule et retourne le résultat. La chaîne d'origine reste inchangée — comme toutes les fonctions PHP sur les chaînes, strtoupper() renvoie une nouvelle chaîne plutôt que de modifier son argument en place.

On l'utilise dès qu'on a besoin d'une sortie ou d'une comparaison insensible à la casse : normaliser des codes pays (usUS), mettre un titre en majuscules, ou comparer deux chaînes sans se soucier de la casse. Cette page couvre la syntaxe, la mise en garde importante concernant le multioctet, ainsi que les fonctions associées souvent utilisées en parallèle.

Syntaxe

strtoupper(string $string): string
PartieDescription
$stringLa chaîne d'entrée. Obligatoire.
RetourUne copie de $string avec chaque lettre ASCII minuscule (az) convertie en majuscule. Les caractères non alphabétiques sont retournés tels quels.

Un exemple basique

php— editable, runs on the server

Les chiffres, les espaces et la ponctuation (!) passent sans modification — seules les lettres sont mises en majuscules. Notez que $string contient toujours "Hello World!" ; le texte converti se trouve dans $uppercase.

Comparaison insensible à la casse

Un usage courant est la comparaison de la saisie utilisateur sans se préoccuper de la manière dont elle a été saisie. Il suffit de mettre les deux côtés en majuscules, puis de comparer :

<?php

$input = "Yes";

if (strtoupper($input) === "YES") {
    echo "Confirmed";
} else {
    echo "Not confirmed";
}
// Confirmed

C'est pourquoi strtoupper() (et son homologue strtolower()) apparaissent si souvent dans le code de gestion des formulaires et de routage.

Le piège du multioctet

strtoupper() est basée sur les octets et indépendante des paramètres régionaux pour tout ce qui dépasse le simple ASCII. Elle ne sait convertir en majuscule que les lettres az. Les lettres accentuées et non latines sont laissées telles quelles :

<?php

echo strtoupper("café"); // CAFé  — the é is not converted

Pour le texte Unicode (chaînes UTF-8 avec accents, ñ, cyrillique, grec, etc.), utilisez mb_strtoupper(), qui comprend les encodages de caractères :

<?php

echo mb_strtoupper("café", "UTF-8"); // CAFÉ

Règle générale : données ASCII uniquement (codes, slugs, étiquettes en anglais) → strtoupper(). Tout ce qui pourrait contenir des caractères internationaux → mb_strtoupper().

Fonctions associées

  • strtolower() — l'inverse : convertit les lettres majuscules en minuscules.
  • ucfirst() — met en majuscule uniquement le premier caractère d'une chaîne.
  • ucwords() — met en majuscule le premier caractère de chaque mot.

Résumé

strtoupper() retourne une nouvelle copie entièrement en majuscules d'une chaîne ASCII et s'avère pratique pour normaliser des données et effectuer des comparaisons insensibles à la casse. Pour le texte pouvant contenir des caractères non ASCII, préférez mb_strtoupper() afin que les lettres accentuées et non latines soient correctement converties.

Pratique

Pratique
Que fait la fonction PHP strtoupper ?
Que fait la fonction PHP strtoupper ?
Was this page helpful?