|
Erstellt ein Array
Groß-
Ersetzt alle Vorkommen eines Strings in einem anderen String |
Tutorials - Erste Schritte - Strings - str replaceTutorials - Erste SchritteStrings: str replace
str_replace() tut, wie der name schon sagt, was replacen, ersetzen. Wie geht dhem ? Im folgenden Beispiel wird im Götterfunken die Zeichenkette "Freude" durch "Trauer" ersetzt und ausgegeben: <?php $text = "Freude schöner Götterfunken, Tochter aus Elysium, Wir betreten Feuertrunken, Himmlische, dein Heiligtum! Deine Zauber binden wieder, Was die Mode streng geteilt. Alle Menschen werden Brüder, Wo dein sanfter Flügel weilt."; echo str_replace("Freude", "Trauer", $text); ?> Ab PHP 5 ist die Funktion str_ireplace() eingebaut, der dann Groß / Klein-Schreibung egal ist. str_replace() ersetzt nicht nur einmal, das war eben nur Zufall (da "Freude" nur 1x vorkam) sondern alle Fundstellen im Text: <?php $kinderlied = "Drei Chinesen mit dem Kontrabaß saßen auf der Straße und erzählten sich was.<br /> Da kam die Polizei: \"Ja was ist denn das?\"<br /> Drei Chinesen mit dem Kontrabaß"; echo $kinderlied; echo "<br />\n<br />\n<font color=red>"; $a = $kinderlied; $a = str_replace("e", "a", $a); $a = str_replace("i", "a", $a); $a = str_replace("o", "a", $a); $a = str_replace("u", "a", $a); echo $a; ?> Denn die Parameter in str_replace() können seit PHP 4.0.5 alle Arrays sein. Das ist vor allem praktisch, wenn man mehrere Suchbegriffe (wie eben im Beispiel) hat: <?php $kinderlied = "Drei Chinesen mit dem Kontrabaß saßen auf der Straße und erzählten sich was.<br /> Da kam die Polizei: \"Ja was ist denn das?\"<br /> Drei Chinesen mit dem Kontrabaß"; echo $kinderlied; echo "<br />\n<br />\n<font color=red>"; $zeichen = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); echo str_replace($zeichen, "a", $kinderlied); /* alle in $zeichen enthaltene Zeichen werden ersetzt durch "a""; */ echo "</font><br />\n<br />\n<font color=blue>"; /* oder in PHP5: */ $zeichen = array("a", "e", "i", "o", "u"); echo str_ireplace($zeichen, "u", $kinderlied); /* durch das "i" in str_ireplace würde auch z.B. große E durch "u" ersetzt"; */ echo "</font>"; ?> <?php $kinderlied[0] = "Drei Chinesen mit dem Kontrabaß saßen auf der Straße und erzählten sich was.<br />\n Da kam die Polizei: \"Ja was ist denn das?\"<br />\n Drei Chinesen mit dem Kontrabaß"; $kinderlied[1] = "Fuchs du hast die Gans gestohlen..."; $kinderlied = str_replace("die", "<b>die</b>", $kinderlied); echo $kinderlied[0] . "<br />\n<br />\n" . $kinderlied[1]; ?> |