Antworten auf deine Fragen:
Neues Thema erstellen

PHP - Interpretieren vor Ausgabe

Winkili

Noch nicht viel geschrieben

Liebe PSD'ler,

nachdem mir bei meinem letzten Problem super geholfen wurde, möchte ich euch nochmals eine andere PHP-Frage zuwerfen.
Ich hab eine Funktion, die aus dem GET-Array den Wert 'id' ausliest.
Je nach übergebenen Wert wird ein anderes Ergebnis an den Funktionsruf zurückgegeben.
PHP:
function identifySelectedSite () {
    if(isset ($_GET)) {
        switch ($_GET['id']) {
            case 'start': return file_get_contents('content/start.php');
        break;
    }
}
Ein BasisLayout wird geladen und vor der Ausgabe die Platzhalter mittels 'str_replace' mit dem Ergebnis der Funktion ausgetauscht.
PHP:
// Ergebnis der Funktion 'identifySelectedSite' wird in Variable geschrieben
$flexibleHTMLSiteContent = identifySelectedSite ();

// BasisLayout wird zum Austausch der Platzhalter geladen
$basicLayout = file_get_contents('layout.html');

// Platzhalter-Array
$placeholders = array('NavigationPlatzhalter', 'ContentPlatzhalter');

// Austausch der Platzhalter mit Variable in der das Ergebnis der Funktion steht
foreach ($placeholders as $value) {
    if($value == 'ContentPlatzhalter') {
        $basicLayout = str_replace($value, $flexibleHTMLSiteContent , $basicLayout);
        
    }
}
Es funktioniert alles was funktionieren soll, leider jedoch wird mein Content nicht von PHP interpretiert sondern nur 'rauskopiert' und wieder eingefügt.

Gibt es eine Möglichkeit, den externen Inhalt erst von PHP interpretieren zu lassen und dann einzufügen? Da später ein Kontaktformular als Inhalt eingesetzt werden soll, ist mir ein eval() aktuell noch zu heikel.

Vielen Dank für eure Tipps.
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: PHP - Interpretieren vor Ausgabe

Interpretieren = evaluieren = eval()
Mir ist kein anderer Weg bekannt (obwohl in den Kommentaren von eval() scheinbar ein paar selbst gebastelte Alternativen diskutiert werden), um den PHP-Interpreter manuell zu starten.

Was du machen willst ist ja aber eindeutig ein Template-System. Dieses Problem wurde schon gelöst.
Falls du das nur zum Lernen machst / nichts fertiges nutzen willst, könntest du entweder deinen Code anders strukturieren (mit includes usw. statt str_replace arbeiten), oder du könntest dir auch den Code einer kleinen Template-Engine runterladen und studieren. Dort wurde i.d.R. schon recht viel Grips von mehreren Leuten investiert.


Duddle
 

Winkili

Noch nicht viel geschrieben

AW: PHP - Interpretieren vor Ausgabe

Hallo Duddle,

vielen Dank für deine Antwort. Deine Vermutung mit dem TemplateSystem war goldrichtig.
Einen Blick auf den Quellcode eines bereits funktionierenden TemplateSystems werde ich im Verlaufe des heutigen Abend auf alle Fälle werfen. Eventuell kann ich dort den ein oder anderen Tipp mitnehmen.
Was mir immer wieder in den Sinn gekommen ist, ist den einzusetzende Inhalt im Vorfeld schon interpretieren zu lassen.
Dabei bin ich auf die Ausgabepufferung ( ob_start ) gestoßen. So recht funktionieren will dies in meinem kleinen TestSkript jedoch noch nicht.
Eventuell weiß jemand einen Tipp ob oder wie sich der Puffer in meinem Skript einbauen ließe - vielen Dank.
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben