dedlfix: Ersetzungen in einem String

Beitrag lesen

Tach!

Wenn nur München als Ersatz verwendet werden soll, dann kannst du ein Array für die Namen und München als String übergeben. Jedes Stadt muss dann mit einem eigenen str_replace() behandelt werden.

Das hört sich schonmal sehr brauchbar an! Aber welche Struktur verwende ich am besten außenrum?
100 mal str_replace() hintereinander? Theoretisch kann man str_replace()-Überprüfungen ja schon beenden, wenn 1 Name ersetzt wurde, da mit Sicherheit keine weiteren mehr im String vorkommen.

str_replace() bricht genauso wie strtr() nicht ab. Lediglich preg_replace() hat einen Limit-Parameter. Die ersten beiden kannst du auch durch eine Eigenkonstruktion ersetzen, die mit strpos() sucht und dann den String zerschneidet und wieder zusammensetzt. Ob das schneller ist, als str_replace() unnötigerweise den gesamten String durchsuchen zu lassen, wage ich zu anzuzweifeln. Unmöglich ist das aber nicht. Kommt sicher auch auf die Länge des zu bearbeitenden Strings an.

oder doch irgendwie mit switch?

Was willst du immer mit switch? switch wertet einen Ausdruck aus und verzweigt entsprechend der angegebenen Ergebnismöglichkeiten. Wo siehst du für deinen Fall eine Einsatzmöglichkeit für switch?

Ein assoziatives Array kannst du nur mit strtr() in seiner zweiten Variante verarbeiten.
Könnte auch brauchbar sein, nur müßte ich hier ein Array mit 300 zeilen definieren, wobei für jede Stadt je 3 Arrayfelder definiert werden müßen. Ginge es auch "kürzer"?

Syntaktisch kürzer als mit den drei genannten Funktionen nebst dem dafür notwendigen Drumherum wirst du es nicht hinbekommen.

dedlfix.