PHP String Funktionen Teil 3.2: Verändern von Strings
Nach dem Teilen von Strings in Teil 3.1 kommen wir nun zu Funktionen, mit denen man Strings verändern kann.
strtolower und strtoupper
strtolower setzt den kompletten String – sprich alle Buchstaben – in Kleinbuchstaben um. Oft verwendet wird diese Funktion, um beispielsweise aus einem Titel eine suchmaschinenfreundliche URL zu generieren. Natürlich muss noch mehr verändert werden wie z.B. Leerzeichen in Bindestriche verwandeln oder ähnliches. strtoupper ist das genaue Gegenteil und setzt folglich alle Buchstaben in Großbuchstaben um.
-
echo strtolower("Strings ändern");
-
// gibt "strings ändern" zurück
-
echo strtoupper("Strings ändern");
-
// gibt "STRINGS ÄNDERN" zurück
ucfirst und ucwords
Mit ucfirst wird das erste Zeichen eines Strings in einen Großbuchstaben verwandelt. Das erste Zeichen muss aber ein gültiger Buchstabe sein, andere Zeichen oder Zahlen werden nicht umgewandelt. Bei ucwords hingegen werden die Anfangsbuchstaben aller Wörter in einen Großbuchstaben verwandelt. Ein neues Wort ist immer nach einem Whitespace wie z.B. Leerzeichen oder Tabulator.
-
echo ucfirst("php strings ändern");
-
// gibt "Php strings ändern" zurück
-
echo ucwords("php strings ändern");
-
// gibt "Php Strings Ändern" zurück
substr_replace
Die Funktion ist ähnlich zu substr, nur wird hier kein bestimmter Teil zurückgegeben sondern durch einen anderen Teil ersetzt. Dazu wird im ersten Parameter der Funktion erstmal der String übergeben und im zweiten der Text der danach eingesetzt wird. Mit den anderen zwei Parametern wird der genaue Teil des Strings bestimmt, der ersetzt werden soll. Dazu wird im dritter Parameter die Startposition angegeben; dabei ist zu beachten das die 0 das erste Zeichen repräsentiert, 1 das zweite usw. Im vierten Parameter wird dann die Länge übergeben wieviel Zeichen ausgehend vom Startwert angezeigt werden sollen.
-
$var = "!§$%!§$&!::;IO";
-
echo substr_replace($var, 'web-manual', 2, 5);
-
// gibt "!§web-manual&!::;IO" zurück
Achtung: Wenn für den Startparameter negative Werte eingesetzt werden, wird vom Ende des Strings aus nach links gezählt. Wenn die Länge negativ ist, wird auch vom Ende des Strings nach links gezählt und bis zu der Position der String ersetzt.
-
$var = "!§$%!§$&!::;IO";
-
echo substr_replace($var, 'web-manual', -5, -1);
-
// gibt "!§$%!§$&!web-manualO" zurück
str_replace
Auch str_replace ersetzt einen Teil des Strings durch einen anderen Text. Im Gegensatz zu substr_replace wird allerdings nicht die genaue Zeichenposition angegeben, bei der der String ersetzt werden soll. Stattdessen wird nach einen bestimmten Wort gesucht und genau dieses durch ein anderes ersetzt.
Im ersten Parameter wird daher der String übergeben, nachdem gesucht werden soll, im zweiten der String durch den das Suchwort ersetzt wird und im dritten Parameter dann der komplette String, auf dem das Ersetzen angewendet werden soll. siehe Beispiel
-
echo str_replace("%farbe%", "blau", "Die Farbe ist %farbe%.");
-
// ausgabe: Die Farbe ist blau.
Es ist möglich, für die Parameter auch ein Array zu setzten. Folglich wird je ein Wert der Arrays zum Suchen und Ersetzen verwendet. Man kann sich so vorstellen; für jeden Wert im Array wird die Funktion einmal aufgerufen oder man schaut sich einfach das Beispiel an ;)
-
$vokale = array("a", "e", "i", "o", "u", "A", "E", "I");
-
echo str_replace($vokale, "", "Hallo Web:Manual Besucher");
-
// ausgabe: Hll Wb:Mnl Bschr
Ich hoffe die Beispiele sprechen für sich, es ist wirklich nicht so einfach die volle Funktionsweise jeder Funktion vollkommen verständlich zu erklären. Am besten kopiert man den Quelltext, spielt ein wenig mit den Parametern herum falls einem eine Funktion nocht nicht völlig klar ist.





