Wert ersetzten
bearbeitet von Gunnar Bittersmann@@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:
> ~~~php
> $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](http://php.net/manual/en/function.sprintf.php) verwenden:
~~~php
$Nachricht = 'Ich möchte gerne %1$d Nachrichten pro Woche erhalten';
~~~
Bei der Ausgabe dafür dann den entsprechenden Wert einsetzen:
~~~php
printf($Nachricht, $Wert_aus_DB);
~~~
Das geht davon aus, dass in `$Nachricht`{: .langugage-php} und `$Wert_aus_DB`{: .langugage-php} nichts Böses drinstehen kann. Ansonsten wären die Werten noch durch `htmlspecialchars()`{: .langugage-php} zu jagen.
Falls du den Text nicht gleich ausgeben, sondern erstmal in einer Variablen haben willst: `sprintf()`{: .langugage-php}.
LLAP 🖖
--
„Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
„Hat auf dem Forum herumgelungert …“
(Wachen in Asterix 36: Der Papyrus des Cäsar)