Gunnar Bittersmann: Wert ersetzten

Beitrag lesen

@@Sara

Folgende Zeile kommt aus einer Datenbank

Ich möchte gerne 7 Nachrichten pro Woche erhalten

?? Das sollte so nicht in der Datenbank stehen. Weiter unten lässt du auch durchblicken, dass es das nicht tut, sondern lediglich die Zahl aus der Datenbank kommt:

$Wert_aus_DB = "14";
$Nachricht   = "Ich möchte gerne %Mails Nachrichten pro Woche erhalten";
$Nachricht   = str_replace ($Wert_aus_DB, "%Mails", $Nachricht);

Nee, nicht mit regulärem Ausdruck suchen und ersetzen, sondern Platzhalter verwenden:

$Nachricht = 'Ich möchte gerne %1$d Nachrichten pro Woche erhalten';

Bei der Ausgabe dafür dann den entsprechenden Wert einsetzen:

printf($Nachricht, $Wert_aus_DB);

Das geht davon aus, dass in $Nachricht und $Wert_aus_DB nichts Böses drinstehen kann. Ansonsten wären die Werten noch durch htmlspecialchars() zu jagen.

Falls du den Text nicht gleich ausgeben, sondern erstmal in einer Variablen haben willst: sprintf().

LLAP 🖖

--
„Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
„Hat auf dem Forum herumgelungert …“
(Wachen in Asterix 36: Der Papyrus des Cäsar)