include in eine Variable statt ausgabe?

include in eine Variable statt ausgabe?

am 26.09.2006 19:00:11 von Andre Bryx

Problem:
Ich hatte mir eine etwas komplexere HTML-Ausgabe als Template
gecoded und hatte sie nach der Werteübergabe mit include direkt
ausgegeben.

Nun hat sich das Programm etwas geändert und nun brauche
ich die Ausgabe an einer etwas anderen Stelle als Übergabe
und versuchte es mit "$content=include('tpl/rahmen.tpl');"
zu lösen, was nichts erbrachte, das Template wird nach wie
vor direkt ausgegeben und in der Variable ist nix.
Geht das generell nicht oder habe ich da was übersehen?

Kleine Hilfestellung wäre nett :-)

Andre

Re: include in eine Variable statt ausgabe?

am 26.09.2006 19:24:01 von Carsten Wiedmann

Andre Bryx schrieb:

> Nun hat sich das Programm etwas geändert und nun brauche
> ich die Ausgabe an einer etwas anderen Stelle als Übergabe
> und versuchte es mit "$content=include('tpl/rahmen.tpl');"
> zu lösen, was nichts erbrachte, das Template wird nach wie
> vor direkt ausgegeben und in der Variable ist nix.
> Geht das generell nicht oder habe ich da was übersehen?

Wenn in "rahmen.tpl" reines HTML (kein PHP-Block) ist, macht man das mit
file_get_contents(). Ansonsten gäbe es da auch noch das PHP-Manual zu
include(), wo erklärt wird, was/wann/wie zurückgegeben wird. In deinem Fall
wäre hier das Example 16-10 interessant.

Gruß
Carsten

Re: include in eine Variable statt ausgabe?

am 26.09.2006 19:26:30 von Ulf Kadner

Andre Bryx wrote:

> Ich hatte mir eine etwas komplexere HTML-Ausgabe als Template
> gecoded und hatte sie nach der Werteübergabe mit include direkt
> ausgegeben.
>
> Nun hat sich das Programm etwas geändert und nun brauche
> ich die Ausgabe an einer etwas anderen Stelle als Übergabe
> und versuchte es mit "$content=include('tpl/rahmen.tpl');"
> zu lösen, was nichts erbrachte, das Template wird nach wie
> vor direkt ausgegeben und in der Variable ist nix.
> Geht das generell nicht oder habe ich da was übersehen?
>
> Kleine Hilfestellung wäre nett :-)

Schau dir die Funktionen für Output-Buffering an. (ob_*)


MfG, Ulf

Re: include in eine Variable statt ausgabe?

am 26.09.2006 19:43:47 von Andre Bryx

Ulf Kadner schrieb:

> Schau dir die Funktionen für Output-Buffering an. (ob_*)

Funktioniert wie aufgeführt- Danke für den Tipp!!

>>ob_start();
>>include('tpl/rahmen.tpl');
>>$content=ob_get_contents();
>>ob_end_clean();

Re: include in eine Variable statt ausgabe?

am 26.09.2006 19:46:38 von Andre Bryx

Carsten Wiedmann schrieb:

> Wenn in "rahmen.tpl" reines HTML (kein PHP-Block) ist, macht man das mit
> file_get_contents(). Ansonsten gäbe es da auch noch das PHP-Manual zu
> include(), wo erklärt wird, was/wann/wie zurückgegeben wird. In deinem
> Fall wäre hier das Example 16-10 interessant.

In dem Fall sind aber jede Menge PHP Blocks drin, die erstmal durch die
Verarbeitung müssen. Wie in der anderen Antwort angedeutet, komme ich
mit ob_xxx buffering direkt zum Ziel. Es gäbe bestimmt eine saubere
Lösung, aber der Zweck heiligt die Mittel ;-)

Andre

Re: include in eine Variable statt ausgabe?

am 26.09.2006 20:29:02 von Carsten Wiedmann

Andre Bryx schrieb:

> > Wenn in "rahmen.tpl" reines HTML (kein PHP-Block) ist, macht man das
> > mit file_get_contents(). Ansonsten gäbe es da auch noch das
> > PHP-Manual zu include(), wo erklärt wird, was/wann/wie zurückgegeben
> > wird. In deinem Fall wäre hier das Example 16-10 interessant.
>
> In dem Fall sind aber jede Menge PHP Blocks drin, die erstmal durch
> die Verarbeitung müssen.

Dann ists aber IMHO kein Template ;-)


> Wie in der anderen Antwort angedeutet,

Du hattest doch nur eine Antwort von mir? ...


> komme ich mit ob_xxx buffering direkt zum Ziel. Es gäbe bestimmt
> eine saubere Lösung, aber der Zweck heiligt die Mittel ;-)

Das steht ja im Manual und dem Example auf das ich dich oben hingewiesen
hab. Und dies ist dann in deinem Fall auch die saubere Lösung (mal davon
abgesehen, dass in Templates normal kein PHP drin ist).

Gruß
Carsten