Endijs Posted September 24, 2008 Report Share Posted September 24, 2008 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 More sharing options...
bubu Posted September 24, 2008 Report Share Posted September 24, 2008 Pirms tam neviens cits ob_start() nav izsaucis? Link to comment Share on other sites More sharing options...
Endijs Posted September 24, 2008 Author Report Share Posted September 24, 2008 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 More sharing options...
bubu Posted September 24, 2008 Report Share Posted September 24, 2008 Hmm, bet tas laikam ir ok, tur jau ob_end izsaucās. Nezināšau problēmu. Link to comment Share on other sites More sharing options...
andrisp Posted September 24, 2008 Report Share Posted September 24, 2008 Un nestēšana nenotiek ? Link to comment Share on other sites More sharing options...
Endijs Posted September 25, 2008 Author Report Share Posted September 25, 2008 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 More sharing options...
marrtins Posted September 25, 2008 Report Share Posted September 25, 2008 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? Izskatās, ka kaukur pa vidu kāda funkcija izsauc ob_start(), bet neiztīra to. Link to comment Share on other sites More sharing options...
Recommended Posts