Sven Rautenberg: PHP Code im String - Was jetzt?

Beitrag lesen

Moin!

ich mache Vaterschaftsvertretung für meinen Kollegen und soll "mal eben" seine Arbeit weiterführen. Aufgabe ist aus einer SQL Datenbank, Inhalte auslesen und anzeigen.

Eine ordentliche Übergabe wurde also gemacht?

Soweit so gut, Connect funktioniert, Datensatz kommt, anzeigen fertig. Doch so einfach ist das nicht in der Datenbank sind "WENN-DANN" Bedingungen im Datensatz vorhanden (Ich habe so etwas noch nicht gesehen).

Sieht komplizierter aus, als es zwingend sein muss, aber effektiv sind das Template-Anweisungen.

Beispiel: Heute #IF-OPEN##wetter##GLEICH#rain#IF-CLOSE#die Regenjacke nicht vergessen.#ELSEIF-OPEN##wetter##GLEICH#sun#IF-CLOSE#den Sonnenhut aufsetzten.#IF-END#

Ich kenne soetwas garnicht. Mein Kollege ist auch nicht erreichbar, daher habe ich mich versucht dort hinein zu denken. Die Syntax ist klar ersichtlich Befehle werden von # Eingeklammert. Hier im Forum gab es auch schon einen Thread dazu (https://forum.selfhtml.org/self/2015/sep/11/schuelern-php-und-wenn-dann-erklaeren/1649793#m1649793).

Du brauchst die Template-Engine deines Kollegen. Du hast ja aufgrund der gemachten Übergabe Zugriff auf den Sourcecode und weißt, wo du nachgucken kannst.

Ich habe auch gefunden woher er #wetter# bekommt. Aber wie soll ich aus diesem "String" einen PHP Code zaubern?

Ich kann mit Replace zwar ordentlichen Code daraus machen, der ist dann aber in einem String!? Argh was hat er sich dabei nur gedacht? Jemand von euch eine Idee wie man da weiterkommen könnte?

Egal was du basteln willst: Gehe davon aus, dass dein Kollege die Lösung dafür schon gecodet hat. Man schreibt nicht einfach wild irgendwelche Template-Marker in eine Datenbank, ohne dass man ein Konzept hat, wie man daraus wieder ansehnlichen Text machen kann.

Finde den Code der Template-Engine und schau in deren Tests, wie diese Marker zu benutzen sind bzw. welche es gibt und was sie als Textergebnis bewirken.

Grüße Sven

PS: JA, natürlich ist mir klar, dass es keine ordentliche Übergabe gegeben hat, dass es keine Dokumentation gibt, keinen Zugriff auf den Sourcecode, und keine Tests. Wenn all das stimmt, bist/hast du ohnehin verloren und kannst dann auch gleich die DB ignorieren und eine komplett eigene Lösung aufsetzen, deren Auswirkungen du selbst verstehst, und deren Innereien keine unliebsamen Überraschungen enthalten. Muss dein Chef eben den Aufwand doppelt bezahlen, und dein Kollege kriegt dieselbe "tolle" Überraschung, wenn er wieder da ist: Oh, alles komisch, alles anders.

Und wenn er dann sagt: "Warum hast du denn nicht einfach die Template-Funktion genommen.... die... ähm... auf meiner verschlüsselten Festplatte versteckt war, von der ich dir bei der ausgefallenen Übergabe nichts erzählt habe..." ... ist klar, worauf ich hinaus will?