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

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

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

Kommentare (0)

Von neu nach alt