Jump to content
php.lv forumi

Ir idejas kāpēc ob_end_clean uzvedas jocīgi?


Endijs

Recommended Posts

Esmu ticis pie viena skripta labošanas. Attiecīgais skripts bija veidots uz PHP4. Tagad pielaboju lai srādā uz PHP5. Izmantota arī buferošana un ar to ir novērojama viena, man īsti neizprotama, problēma. Mēģināšu ilustrēt.

 

..... vairāki echo .....
ob_start();
... vairāki echo...
$data = ob_get_contents();
ob_end_clean();
if ($zz)
{
echo $data;
}
else echo 'paliek tikai šis';
....

 

Nu lūk - ir gadījumi kad ja paliek šāds kods, tad gadījumā ja !$zz pazūd viss iepriekš browserī izvadītais un viss pēc tam izvadītais (paliek tikai "paliek tikai šis"). Bet nu arī tas nav visos gadījumos. Tiku tik tālu, ka ja ob_end_clean() aizvieto ar

if (count(ob_list_handlers()) > 1) ob_end_clean();

tad viss ir OK.

 

Idejas?

Link to comment
Share on other sites

Ir.

 

.... parasti echo ......

		ob_start();
funkcija();
		$x= ob_get_contents();
		ob_end_clean();
.... parasti echo ....
TAD TAS KO ES IEPRIEKŠ RAKSTĪJU.

Bet nu varbūt vēl kaut kur ir. Bet nu tā uzreiz nemanīju. Tas kods ir ļoti garš un esmu sācis viņu pētīt tikai šodien.

Link to comment
Share on other sites

andrisp - runā skaidrāk :) Nav īpaši iepriekš nācies ar ob_ darboties - tikai tā - garām ejot. Bet nu lai kā tur arī būtu - kā var kaut kādas funkcijas nodzēst visu pirms tam izvadīto, kā arī visu pēc tam izvadīto, taču atstāt kaut kādu vienu teikumu. Mistika.

Link to comment
Share on other sites

×
×
  • Create New...