PHP Content in Variable ablegen und in Template ausgeben

zer0

Erfahrenes Mitglied
Hallo,

ich möchte mein Inhalt der von PHP Dateien mit HTML Templates erstellt wird sozusagen in einer Variable speichern und und später als Inhalt in das Haupttemplate, die Index-Datei, einfügen.

Um mein Problem deutlicher zu machen zeig ich mal Code:

Die index.php sieht ca. so aus:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Seite</title>
</head>

<body>
	<div class="wrapper">
        <div class="content">
        	<?php include('content.php'); ?>
        </div>
	</div>
</body>
</html>

So etwas ist bestimmt bekannt. Die content.php includiert je nach der URL (dem GET-Parameter) die entsprechene PHP Datei, z.B. article.php bei index.php?content=article

Die article.php wiederum läd Daten aus der DB, fügt sie in Templates (für die Darstellung des Artikels) und gibt das Template aus.

Jetzt will ich aber das die index.php eine reine PHP Datei ist, das Layout soll als Template Datei nur HTML Code und Platzhalter enthalten.

Wie kann ich jetzt den Code den die article.php liefert speichern um ihn später ins Template zu übertragen?

Danke schonmal im vorraus :)
 
Ich verstehe dich nicht ganz.

Jetzt will ich aber das die index.php eine reine PHP Datei ist, das Layout soll als Template Datei nur HTML Code und Platzhalter enthalten.

Dann müsstest du die index.php ändern und danach mit str_replace oder anderen Funktionen arbeiten.

Wie kann ich jetzt den Code den die article.php liefert speichern um ihn später ins Template zu übertragen?
Wird der Code direkt ausgegeben (also per echo oder print)?
Dann müsstest du die Output-Control-Funktionen von PHP nutzen.
 
Ich verstehe dich nicht ganz.
Jetzt will ich aber das die index.php eine reine PHP Datei ist, das Layout soll als Template Datei nur HTML Code und Platzhalter enthalten.
Dann müsstest du die index.php ändern und danach mit str_replace oder anderen Funktionen arbeiten.

Um das Template-System geht nicht, das habe ich schon. Ich meine damit das die index.php nur noch den Code enthält um z.b. die Session zu starten und das erste Template zu laden. Das Design der Seite soll in einem Haupttemplate sein, und in diesem ist nur HTML Code und Platzhalter.

Sodass wenn jemand ein Template erstellt nicht <?php include('content.php'); ?> einbinden muss, sondern nur noch den Platzhalter an der jeweiligen Stelle einträgt.


Wie kann ich jetzt den Code den die article.php liefert speichern um ihn später ins Template zu übertragen?
Wird der Code direkt ausgegeben (also per echo oder print)?
Dann müsstest du die Output-Control-Funktionen von PHP nutzen.

Ja wird er. Das habe ich mir auch schon gedacht, jedoch habe ich bereits ein ob_start() ganz am Anfang (sieht man in meinem Bsp. nicht) um ein header already sent zu verhinden.

Ich hoffte das es da noch eine anderen Möglichkeit gibt, wenn nicht muss ich wohl mit mehreren Puffern arbeiten.
 
Hallo,

das ist es leider auch nicht was ich meine. Ich denke ich drück mich falsch aus. Man muss sich das so vorstellen:

In meiner index.php setze ich ein Ajax Request auf article.php?id=12 ab UND der Inhalt der mir dieser liefert, den speicher ich um ihn später in das Template einzufügen.

//EDIT:

Ich glaube ich habe es. Hatte grad ein spontanen Einfall nachdem ich mir dein Code nochmals angeschaut habe.
Ich werde es später ausprobieren, wenn ich daheim bin!
 
Zuletzt bearbeitet:
Zurück