Kurz möchte ich zeigen, wie wir es bewerkstelligen können, sämtliche Strings in einem oder mehreren Werten einer Variable ersetzen können. Bislang habe ich das im Netz nicht gut dokumentiert gefunden, deshalb dieser Beitrag.
Ausgangssituation:
Wir haben eine fertig generierte Tabelle, welche wir mit PHP auf einer Seite ausgeben möchten. Die Tabelle enthält jedoch ein paar falsche Werte, wie zum Beispiel nicht gut lesbare Namen in einer Spalte. Wir wissen die NAmen und wissen auch, dass diese immer auf die gleiche Weise in der Ausgabe erscheinen, jedoch an unterschiedlichen Stellen.
Unsere Tabellenausgabe ($variablemitinhalten) sieht unbearbeitet so aus:
<tr><th>user1</th><th>7.99 MB</th></tr> <tr><th>user2</th><th>7.99 MB</th></tr> <tr><th>user3</th><th>7.99 MB</th></tr>
Nun ist das jedoch nicht gut lesbar, da wir nicht automatisch wissen, wer user1, user2 und user3 sind. Deshalb möchten wir in der Ausgabe jeweils genau diese Teile mit eigenen Teilen ersetzen.
Zuerst schreiben wir ein Array, welches wie folgt gefüllt wird:
$ersetzungen = array( "user1" => "Peter", "user2" => "Bob", "user3" => "Alice", );
Wie wir sehen, sind user1, user2 und user3 in Wirklichkeit Peter, Bob und Alice. Nachdem wir in unserem Array definiert haben, welcher String mit welchem ersetzt werden soll, starten wir mit der str_replace()-Funktion welche PHP von Haus gleich mitbringt. Im gleichen Zuge gebe ich die Inhalte in korrekter Form mit „echo“ aus.
echo str_replace(array_keys($ersetzungen),$ersetzungen,$variablemitinhalten);
In diesem Fall ist $variablemitinhalten unsere Variable, welche die Tabelle enthält in der die Werte ersetzt werden sollen.
Unser str_replace, hier übrigens eine tolle Übersichtsseite von w3schools, ersetzt nun also den ersten Teil unseres Arrays (Key oder auch Schlüssel) mit dem zweiten Teil des Arrays (Value oder auch Wert). Im letzten Teil des Befehls wird der Inhalt einer Variable festgelegt, der geändert werden soll.
Wenn alles klappt, sieht diese Tabelle bei der Ausgabe dann so aus:
<tr><th>Peter</th><th>7.99 MB</th></tr> <tr><th>Bob</th><th>7.99 MB</th></tr> <tr><th>Alice</th><th>7.99 MB</th></tr>
Bei Anregungen und Fragen gerne die Kommentarfunktion benutzen!
Ein Gedanke zu „Bestimmten String in Variablen ersetzen mit PHP“