Avatar billede svinth Nybegynder
19. december 2011 - 13:21 Der er 3 kommentarer og
1 løsning

ob stacking problem

Hej alle eksperter.

Jeg har følgende 3 filer, kogt ned:

****************
<?php
test.php:
ob_start();
$remoteFile = realpath(dirname(__FILE__)).'/test2.php';
require($remoteFile);
$content .= "test1<br>".ob_get_contents();
ob_clean();
echo $content;
?>

****************
<?php
test2.php:
echo "test2 pre<br>";
ob_start();
require(dirname(__FILE__) . '/test3.php');
$outputBuffer = "test2<br>".ob_get_contents();
ob_clean();
echo $outputBuffer;
echo "test2 post<br>";
?>

****************
test3.php:
<?php
echo "test3<br>";
?>

Jeg håbede at få følgende:
test1
test2 pre
test2
test3
test2 post

Men får istedet:
test2 pre
test1
test2
test3
test2 post

Jeg kan ikke lige kringle logikken bag?

Nogen bud?

Mvh fra Svante
Avatar billede larste Nybegynder
19. december 2011 - 13:57 #1
Du henter test2.php og eksekverer den før du eksplicit kalder echo.
Require henter nemlig filen, og eksekverer det der kan eksekveres (eks. et echo statement) så det er derfor dit output er sådan.

<?php
test.php:
echo 'test1<br />';
ob_start();
$remoteFile = realpath(dirname(__FILE__)).'/test2.php';
require($remoteFile);
$content .= ob_get_contents();
ob_clean();
echo $content;
?>

Er det bedre?
Avatar billede svinth Nybegynder
20. december 2011 - 18:39 #2
Hmm, det konkrete tilfælde her giver mening, du får point, men har allerede kodet mig forbi problemet i det faktiske problem, så ved ikke om det ville virke der. Men tak!
Avatar billede svinth Nybegynder
20. december 2011 - 18:39 #3
Har helt glemt hvordan det her virker, smider du et svar larste?
Avatar billede larste Nybegynder
20. december 2011 - 18:42 #4
Det var super, det vigtigste var at du fik det løst :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester