Warum ersetzt er nicht wie in der str_replace function bestimmt die “-*-” zeichen mit den jeweiligen Angaben? Ich hoffe jemand wird daraus schlau. Ich zur Zeit nicht mehr. Meines wissens ist alles eigentlich richtig oder ich stehe komplett auf dem Schlauch.
Ein herzliches Dankeschön schon einmal im Vorraus fürs Helfen
#Array ersetzen durch -*- in html
echo str_replace($arrep,$arrayREPLACE,$html); #FALSCHE Ausgabe[/code]
(PS: Den Code habe ich hier schnell runter geschrieben und hoffe der is Fehlerfrei )
EDIT: Er ersetzt alle “-*-” zeichen mit dem ersten als $arrayREPLACE[0] das ist in diesem Fall immer “current”. Aber das ist ja Falsch weil das Array $arrayREPLACE noch weitere Daten enthält. (laut den manuals : http://php.net/manual/de/function.str-replace.php#example-4342 sollte die function aber alle der Reihe nach ersetzen.
Die Funktion arbeitet genau wie erwartet.
Als erstes tauscht er alle vorkommnisse des ersten Elements aus dem $search array mit dem ersten Element des $replace arrays. Was in deinem Fall: “--" mit “current” ist.
Es wurden also alle "--” durch “current” ersetzt und es sind dann keine “-*-” mehr für die anderen Fälle vorhanden.
Zuerst wird der erste Wert aus $search im kompletten String durch den ersten Wert aus $replace ersetzt – jedes vorkommen dieses Wertes, nicht nur der erste.
Und im nächsten Durchlauf sind dann gar keine “-*-” mehr im String enthalten – weil alle bereits ersetzt wurden. Also gibt es gar nichts mehr, was durch den zweiten oder dritten Eintrag deines replace-Arrays ersetzt werden könnte.
Wenn du das so machen willst, dann musst du unterschiedliche Platzhalter verwenden für alle Stellen, an denen unterschiedliche Werte eingesetzt werden sollen.
Für besser hielte ich es allerdings, gleich sprintf zu verwenden.