strtoupper()
Die Funktion strtoupper() in PHP wandelt alle Kleinbuchstaben eines Strings in Großbuchstaben um. Nützlich für Vergleiche und Normalisierung.
Einführung
strtoupper() wandelt jeden Kleinbuchstaben in einem String in einen Großbuchstaben um und gibt das Ergebnis zurück. Der ursprüngliche String bleibt unverändert — wie alle PHP-String-Funktionen gibt strtoupper() einen neuen String zurück, anstatt das Argument direkt zu verändern.
Man verwendet sie immer dann, wenn man eine Ausgabe oder einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung benötigt: zum Normalisieren von Ländercodes (us → US), zum Hervorheben einer Überschrift oder zum Vergleichen zweier Strings unabhängig von der Schreibweise. Diese Seite behandelt die Syntax, den wichtigen Multibyte-Vorbehalt und die verwandten Funktionen, die häufig zusammen eingesetzt werden.
Syntax
strtoupper(string $string): string| Teil | Beschreibung |
|---|---|
$string | Der Eingabe-String. Erforderlich. |
| Rückgabe | Eine Kopie von $string, bei der jeder ASCII-Kleinbuchstabe (a–z) in einen Großbuchstaben umgewandelt wurde. Nicht-Buchstaben-Zeichen werden unverändert zurückgegeben. |
Ein einfaches Beispiel
Ziffern, Leerzeichen und Satzzeichen (!) werden unverändert weitergegeben — nur die Buchstaben werden in Großbuchstaben umgewandelt. Beachten Sie, dass $string weiterhin "Hello World!" enthält; der konvertierte Text liegt in $uppercase.
Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung
Ein häufiger Anwendungsfall ist der Vergleich von Benutzereingaben, ohne auf die Schreibweise achten zu müssen. Beide Seiten in Großbuchstaben umwandeln und dann vergleichen:
<?php
$input = "Yes";
if (strtoupper($input) === "YES") {
echo "Confirmed";
} else {
echo "Not confirmed";
}
// ConfirmedDeshalb erscheinen strtoupper() und sein Gegenstück strtolower() so häufig in Formularverarbeitungs- und Routing-Code.
Der Multibyte-Vorbehalt
strtoupper() arbeitet bytebasiert und ist sich der Locale nicht bewusst für alles außerhalb von reinem ASCII. Es kennt nur die Umwandlung von a–z. Akzentuierte und nicht-lateinische Buchstaben bleiben unverändert:
<?php
echo strtoupper("café"); // CAFé — the é is not convertedFür Unicode-Text (UTF-8-Strings mit Akzenten, ñ, Kyrillisch, Griechisch usw.) verwenden Sie mb_strtoupper(), das Zeichenkodierungen versteht:
<?php
echo mb_strtoupper("café", "UTF-8"); // CAFÉFaustregel: Nur-ASCII-Daten (Codes, Slugs, rein englische Labels) → strtoupper(). Alles, das internationale Zeichen enthalten könnte → mb_strtoupper().
Verwandte Funktionen
strtolower()— das Gegenteil: wandelt Großbuchstaben in Kleinbuchstaben um.ucfirst()— schreibt nur das erste Zeichen eines Strings groß.ucwords()— schreibt das erste Zeichen jedes Wortes groß.
Zusammenfassung
strtoupper() gibt eine neue, vollständig in Großbuchstaben geschriebene Kopie eines ASCII-Strings zurück und ist praktisch zum Normalisieren von Daten und für Vergleiche ohne Berücksichtigung der Groß-/Kleinschreibung. Für Text, der möglicherweise Nicht-ASCII-Zeichen enthält, sollte mb_strtoupper() bevorzugt werden, damit akzentuierte und nicht-lateinische Buchstaben korrekt umgewandelt werden.