[PHP] Output include file in string

Pagina: 1
Acties:

Onderwerpen


  • iznogood
  • Registratie: September 2001
  • Niet online
Wat ik graag zou willen id dat de onderstaande code de output die gegenereerd wordt door de include file in $work_data plaatst en de gedeclareerde variabelen in de include file intact laat in de rest van het script. Dit voor een template class die ik aan het schrijven ben. De include file wordt echter niet verwerkt en $work_data bevat de source van de include file.

Gebruik van Eval() is niet gewenst.

code:
1
2
if($type=="php" OR $type=="inc")
{ ob_start(); include('inc/'.$filename); $work_data=ob_get_contents(); ob_end_clean(); }


De includefile bevat de volgende simpele code:
code:
1
2
3
4
<?php
  $test="hallo";
  echo $test;
?>


ik heb geen toegang tot de php.ini.

[ Voor 13% gewijzigd door iznogood op 12-10-2012 18:16 ]

Just as Good


Verwijderd

Volgens mij moet die code gewoon precies doen wat je wilt.
De $work_data hoort niet de source code te bevatten, maar de in het "inc/$filename" gegenereerde output.
Bevat die file wel netjes de nodige <?php en ?> tags? En staat short_open_tag aan of uit?

Dit gaat overigens natuurlijk niet werken als je dit binnen een functie doet, want dan leven de variabelen slechts binnen de function scope.

  • iznogood
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op vrijdag 12 oktober 2012 @ 18:06:
Volgens mij moet die code gewoon precies doen wat je wilt.
De $work_data hoort niet de source code te bevatten, maar de in het "inc/$filename" gegenereerde output.
Bevat die file wel netjes de nodige <?php en ?> tags? En staat short_open_tag aan of uit?

Dit gaat overigens natuurlijk niet werken als je dit binnen een functie doet, want dan leven de variabelen slechts binnen de function scope.
Ik maak geen gebruik van short tags. Heb de source van de .inc file toegevoegd. De variabelen blijven binnen de function scope, ik heb hier ook een loop inzitten om alle templates te parsen dus dat is ook geen probleem. Wanneer ik de output buffering helemaal weglaat wordt het include script wel geparsed, maar heb ik hem helaas niet in een string.

Just as Good


  • Merethil
  • Registratie: December 2008
  • Laatst online: 13:51
Wat is eigenlijk precies je vraag?
Volgens mij wil je dat we dit voor je devven, of niet?

  • iznogood
  • Registratie: September 2001
  • Niet online
Merethil schreef op vrijdag 12 oktober 2012 @ 18:13:
Wat is eigenlijk precies je vraag?
Volgens mij wil je dat we dit voor je devven, of niet?
Vraag me af waar het probleem zit. Imho zou dit script gewoon zijn werk moeten doen.

Just as Good


  • Merethil
  • Registratie: December 2008
  • Laatst online: 13:51
Oke fout begrepen dan. Erhm... Volgens mij hoort het ook te werken maar voor een goed overzicht zou ik toch meer code nodig hebben

  • iznogood
  • Registratie: September 2001
  • Niet online
Merethil schreef op vrijdag 12 oktober 2012 @ 18:25:
Oke fout begrepen dan. Erhm... Volgens mij hoort het ook te werken maar voor een goed overzicht zou ik toch meer code nodig hebben
Ik ben er al uit.... de OB code deed precies wat deze behoorde te doen, maar ik had de volgende typo in een if statement zitten:
code:
1
if($type=="txt" OR $type="tpl")         { $work_data=file_get_contents( 'inc/'.$filename); }


Vandaar dat de source geload werd in de work_data... Lekker handig ;)

Just as Good


Verwijderd

Dat verklaart inderdaad een hoop :P
Pagina: 1