dedlfix: Platzhalter in einem MySQL-Tabellenfeld automatisch ersetzen möglich?

Beitrag lesen

Tach!

{stichtag} soll dann durch den Inhalt der Variable $stichtag ersetzt werden.

Bisher mache ich das mit einem Suchen und Ersetzen vor der Ausgabe. So ähnlich wie hier: Stackoverflow

Geht das aber nicht vielleicht schon automatisch?

Das ist doch bereits automatisch genug, oder?

Ich habe es probiert mit Zugang gültig bis $stichtag. und auch mit Zugang gültig bis ".$stichtag.". In allen Fällen wird aber nur $stichtag als Text ausgegeben.

Wenn du das in Kombination mit echo meinst, dann ist das so. Der Wert kommt bereits als String von der Datenbank. PHP parst aber nur Code und String**-Literals** darin, wenn sie in doppelten Anführungszeichen daherkommen.

Eine Möglichkeit wäre, den String zu einem Stringliteral zu konvertieren und dann eval() zu benutzen. Aber vergiss das lieber ganz schnell wieder! Das spart dir einerseits kaum Arbeit, andererseits reißt der gesamte Wunsch nach einem solchen Automatismus nur eine große Sicherheitslücke ins System, besonders dann, wenn die Texte von Nutzern eingegeben werden können. Besser ist eine Funktion, die nur genau die erlaubten Werte zu ersetzen vermag, und nicht alles ausgeben und ausführen kann, was im aktuellen Scope erreichbar ist (wozu auch $_GLOBALS zählt).

Gibt es da vielleicht einen Trick, wie man ohne Suchen&Ersetzen auskommen könnte und den Platzhalter als Variable erkannt und direkt ersetzt wird?

Don't try this at home.

dedlfix.