In diesem Artikel wird die Funktionsweise des Text-Konverters "Klein- / Großbuchstaben" beschrieben. Mit Hilfe dieses Konverters kannst du einen Text komplett in Kleinbuchstaben oder Großbuchstaben umwandeln.
Inhaltsverzeichnis
Eigentlich keine schwere Aufgabe
Es kommt zugegebenermaßen nicht sonderlich oft vor, aber manchmal kommt man dann doch in die Situation, dass man einen Text komplett in Kleinbuchstaben oder in Großbuchstaben benötigt. Die Aufgabenstellung ist eigentlich trivial, aber letztendlich hat man dann irgendwie doch keine Ahnung, wie man das am besten bewerkstelligt, ohne alle Buchstaben mühsam per Hand zu ändern. Deshalb gibt es diesen Konverter: einfach den normalen Text eingeben und umwandeln lassen. Außerdem stehen noch weitere Umwandlungsmöglichkeiten zur Verfügung: beispielsweise, dass nur die Anfangsbuchstaben aller Wörter großgeschrieben werden.
Wie funktioniert dieser Konverter?
Je nach eingestellter Umwandlungsmöglichkeit werden unterschiedliche Funktionen und Befehle abgearbeitet. Eine Sonderbehandlung ist hierbei stets für das große ß (ẞ) notwendig. Die meisten Leute wissen vermutlich noch nicht einmal, dass es dieses Zeichen überhaupt gibt. Bisher war es üblich, das kleine ß bei Großschreibung durch SS zu ersetzen. Seit Anfang 2008 existiert jedoch das neue Zeichen ẞ, welches sich minimal vom kleinen ß unterscheidet. Seit Mitte 2017 ist dieses sogar Bestandteil der amtlichen deutschen Rechtschreibung.
ALLES IN GROẞBUCHSTABEN
Die Umwandlung des gesamten Textes in Großbuchstaben erfolgt im Wesentlichen mit der PHP-Funktion mb_strtoupper(). Lediglich das kleine ß muss separat durch das ẞ ersetzt werden:
$ausgabe = mb_strtoupper($eingabe, 'UTF-8'); $ausgabe = preg_replace('#ß#u', 'ẞ', $ausgabe);
alles in kleinbuchstaben
Um einen Text komplett in Kleinbuchstaben umzuwandeln, benötigen wir stattdessen die Funktion mb_strtolower():
$ausgabe = mb_strtolower($eingabe, 'UTF-8'); $ausgabe = preg_replace('#ẞ#u', 'ß', $ausgabe);
Nur Anfangsbuchstaben Aller Wörter Großschreiben
Die Umwandlung aller Anfangsbuchstaben in Großbuchstaben und der restlichen Zeichen in Kleinbuchstaben geschieht mit Hilfe der Callback-Funktion preg_replace_callback():
$ausgabe = preg_replace_callback("#([A-ZÄÖÜßẞ])([A-ZÄÖÜßẞ]*)#ui", function ($matches) { $anfangsbuchstabe = mb_strtoupper($matches[1], 'UTF-8'); $anfangsbuchstabe = preg_replace('#ß#u', 'ẞ', $anfangsbuchstabe); $restliche_buchstaben = mb_strtolower($matches[2], 'UTF-8'); $restliche_buchstaben = preg_replace('#ẞ#u', 'ß', $restliche_buchstaben); return $anfangsbuchstabe.$restliche_buchstaben; }, $eingabe);
kLEIN-/gROẞSCHREIBUNG UMKEHREN
Möchte man die Klein-/Großschreibung umkehren, so ist es notwendig, für jeden einzelnen Buchstaben zu prüfen, ob dieser klein- oder großgeschrieben ist:
$ausgabe = preg_replace_callback("#([A-ZÄÖÜßẞ])#ui", function ($matches) { if (preg_match('#[A-ZÄÖÜ]#u', $matches[1])) { $ausgabe1 = mb_strtolower($matches[1], 'UTF-8'); } elseif (preg_match('#[a-zäöü]#u', $matches[1])) { $ausgabe1 = mb_strtoupper($matches[1], 'UTF-8'); } elseif (preg_match('#ß#u', $matches[1])) { $ausgabe1 = "ẞ"; } else { $ausgabe1 = "ß"; } return $ausgabe1; }, $eingabe);
Nur den ersten buchstaben im satz großschreiben
Wenn nur der jeweils erste Buchstabe in einem Satz großgeschrieben werden soll, so erfolgt die Umwandlung ähnlich wie in dem Fall, dass nur die Anfangsbuchstaben aller Wörter in Großbuchstaben erscheinen sollen:
$ausgabe = preg_replace_callback("#([A-ZÄÖÜßẞ])([^\.]*)#ui", function ($matches) { $anfangsbuchstabe = mb_strtoupper($matches[1], 'UTF-8'); $anfangsbuchstabe = preg_replace('#ß#u', 'ẞ', $anfangsbuchstabe); $restliche_buchstaben = mb_strtolower($matches[2], 'UTF-8'); $restliche_buchstaben = preg_replace('#ẞ#u', 'ß', $restliche_buchstaben); return $anfangsbuchstabe.$restliche_buchstaben; }, $eingabe);
KlEiN-/gRoẞsChReIbUnG fÜr JeDeN bUcHsTaBeN aBwEcHsElNd
Falls die Klein- bzw. Großschreibung für jeden einzelnen Buchstaben wechseln soll, so kann dies wie folgt implementiert werden:
$ausgabe = preg_replace_callback("#([A-ZÄÖÜßẞ])#ui", function ($matches) { static $gross = true; // Wenn der Buchstabe großgeschrieben werden soll if($gross) { $ausgabe1 = mb_strtoupper($matches[1], 'UTF-8'); $ausgabe1 = preg_replace('#ß#u', 'ẞ', $ausgabe1); $gross = false; } // Wenn der Buchstabe kleingeschrieben werden soll else { $ausgabe1 = mb_strtolower($matches[1], 'UTF-8'); $ausgabe1 = preg_replace('#ẞ#u', 'ß', $ausgabe1); $gross = true; } return $ausgabe1; }, $eingabe);
klEin-/GRoßsCHReiBunG für JEDen BUchSTaBen zufÄlLig
Die zufällige Klein-/Großschreibung erreicht man in ähnlicher Weise mit Hilfe eines Zufallsgenerators:
$ausgabe = preg_replace_callback("#([A-ZÄÖÜßẞ])#ui", function ($matches) { // Wenn der Buchstabe großgeschrieben werden soll if(mt_rand(0, 1)) { $ausgabe1 = mb_strtoupper($matches[1], 'UTF-8'); $ausgabe1 = preg_replace('#ß#u', 'ẞ', $ausgabe1); } // Wenn der Buchstabe kleingeschrieben werden soll else { $ausgabe1 = mb_strtolower($matches[1], 'UTF-8'); $ausgabe1 = preg_replace('#ẞ#u', 'ß', $ausgabe1); } return $ausgabe1; }, $eingabe);