String in Groß-/Kleinbuchstaben umwandeln (Thema: PHP Beispiele)

Wie alle Zeichen in einem String in Kleinbuchstaben oder Großbuchstaben geändert werden können

URL: http://www.rither.de/a/informatik/php-beispiele/strings/string-in-gross-kleinbuchstaben-umwandeln/

1. Kleinschreibung per strtolower()


Um alle Zeichen in einem String in Kleinbuchstaben umzuwandeln kann strtolower($string) verwendet werden.
PHP-Code
<?php
	$str = 'abcABC';
	var_dump($str);
	var_dump(strtolower($str));
?>
Ausgabe
string(6) "abcABC"
string(6) "abcabc"

2. Großschreibung per strtoupper()


Für den Fall, dass Zeichen eines Strings in Großbuchstaben umgewandelt werden sollen, gibt es strtoupper($string).
PHP-Code
<?php
	$str = 'abcABC';
	var_dump($str);
	var_dump(strtoupper($str));
?>
Ausgabe
string(6) "abcABC"
string(6) "ABCABC"

3. In Kleinbuchstaben umwandeln bei UTF-8


Soll ein String in Kleinbuchstaben umgewandelt werden, der in UTF-8 kodiert ist, muss mb_strtolower($string, $encoding) verwendet werden, wobei $encoding "UTF-8" ist.
PHP-Code
<?php
	$str = 'abcABCαβγΩ';
	var_dump(strtolower($str));
	var_dump(mb_strtolower($str, 'UTF-8'));
?>
Ausgabe
string(14) "abcabc����"
string(14) "abcabcαβγω"

4. In Großbuchstaben umwandeln bei UTF-8


Analog zum vorherigen Beispiel (Konvertierung in Kleinschreibung) gilt für die Umwandlung in Großbuchstaben bei UTF-8, dass mb_strtouppper($string, $encoding) verwendet werden sollte. $encoding muss wieder den Wert "UTF-8" haben.
PHP-Code
<?php
	$str = 'abcABCαβγΩ';
	var_dump(strtoupper($str));
	var_dump(mb_strtoupper($str, 'UTF-8'));
?>
Ausgabe
string(14) "ABCABCαβγΩ"
string(14) "ABCABCΑΒΓΩ"

5. Performance von mb_strtoupper()/mb_strtolower()


mb_strtoupper() und mb_strtolower() können beide auch auf Strings angewendet werden, die nicht in UTF-8 kodiert sind.
Ihr Nachteil ist allerdings, dass sie weit langsamer als strtoupper() bzw. strtolower() sind.
Wo immer möglich sollte man daher strtoupper() oder strtolower() verwenden.

PHP-Code
<?php
	// Festlegen des internen Zeichensatzes für die mb-Funktion auf UTF-8,
	// sodass dieser nicht mehr jedes Mal übergeben werden muss
	mb_internal_encoding('UTF-8');

	$str = 'abcDeFGHijkklmOpQrstUvwyz1234567890';

	// strtolower
	$startLower = microtime(true);
	for ($x=0; $x<1000000; $x++) {
		strtolower($str);
	}
	$endLower = microtime(true);

	// strtoupper
	$startUpper = microtime(true);
	for ($x=0; $x<1000000; $x++) {
		strtoupper($str);
	}
	$endUpper = microtime(true);

	// mb_strtolower
	$startLowerMb = microtime(true);
	for ($x=0; $x<1000000; $x++) {
		mb_strtolower($str);
	}
	$endLowerMb = microtime(true);

	// mb_strtoupper
	$startUpperMb = microtime(true);
	for ($x=0; $x<1000000; $x++) {
		mb_strtoupper($str);
	}
	$endUpperMb = microtime(true);

	$timeLower = number_format(($endLower - $startLower), 4);
	$timeUpper = number_format(($endUpper - $startUpper), 4);
	$timeLowerMb = number_format(($endLowerMb - $startLowerMb), 4);
	$timeUpperMb = number_format(($endUpperMb - $startUpperMb), 4);

	echo('strtolower(): ' . $timeLower . 's'."\n");
	echo('strtoupper(): ' . $timeUpper . 's'."\n");
	echo('mb_strtolower(): ' . $timeLowerMb . 's'."\n");
	echo('mb_strtoupper(): ' . $timeUpperMb . 's');
?>
Ausgabe
strtolower(): 1.3102s
strtoupper(): 1.3127s
mb_strtolower(): 19.3046s
mb_strtoupper(): 21.5466s
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung. OK