String aus der Datenbank aufbrechen und entsprechende Werte ersetzen

dcde

Grünschnabel
Kurze Schliderung:
Ich hole per PHP einen String aus der Datenbank, der beispielsweise wie folgt aussieht:

123456789|XY|{HISTORIE_TESTEINTRAG};123456777|XY|{HISTORIE_ERSTER_EINTRAG}; ...

timestamp|Kürzel|Konstante[TRENNZEICHEN]timestamp|Kürzel|Konstante[TRENNZEICHEN] ...


Dieser wird dann per explode() in einen Array aufgebrochen und später ausgegeben. Mein Problem nun, dass PHP natürlich die Konstanten nicht erkennt, da der explode vorerst noch den String in einen Array drückt. Die define()-Einträge füge ich weiter oben per require_once() (entsprechend nach der gewählten Spracheeinstellung) ein.


Meine Frage nun:
Gäbe es eine performante Lösung, welche diese Konstanten ersetzt?
 
Vielen Dank für deine schnelle Antwort. Es funktioniert, mit der constant()-Funktion. Die Konstanten werden entsprechend umgewandelt.


Jedoch hat dein erster Satz mein Interesse zur Optimierung geweckt. Vielleicht lässt sich da noch etwas verbessern. Kurze Erleuterung dazu:

Ich verwende diese Datenbankspalte/String als kleine Historie bzw. Protokoll. Die Skripte erweitern den String immer um das entsprechende Ergebnis (Timestamp + Erkennungs-Id + Beschreibung). Um die Beschreibung nun dynamisch, zur gewählten Sprache, zu halten, arbeite ich mit Konstanten. Die fest hinterlegten Vorgänge ändern sich nicht. Jeder Vorgang/Datenbankeintrag hat seine eigene Historie.
 
Naja, mit Variablen. Ich würde für die übersetzungstexte ein array anlegen und in die Datenbank dann die entsprechenden Keys schreiben.

Generell ist es nicht so gut infach für alles mögliche Konstanten zu verwenden, nimm für variable werte lieber Variablen ;) (Und ja, die Werte sind variabel - von Sprache zu Sprache verschieden.)
 
Zurück