DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   flush() i ob_flush() problem? (http://www.devprotalk.com/showthread.php?t=385)

mega023 24. 11. 2005. 21:55

flush() i ob_flush() problem?
 
imam sledeci problem...
jedan radnja koja se obavlja u php-u traje malo duze (desetak sekundi)
i hocu da napravim da u toku tog procesa korisnik dobija neke rezultate u toku rada cisto da zna da se "nije zaglavilo". Znaci da se ispisuju reed po red svakih sekundu/dve dokle je stigao....

citao sam da se to moze uraditi sa flush/ob_flush,
ali meni to nikako ne radi...

probao sam sve primere sa
http://www.php.net/manual/en/function.flush.php

ali nista ne radi....

ima li ko iskustva sa ovim?

BTW: koristim set_time_limit(0); da nebi doslo do timeout-a.

bluesman 24. 11. 2005. 22:20

Ne znam zasto nebi radilo, probaj obican primer:
PHP kôd:

$echo "1";
flush();
sleep(1);
$echo "2";
flush();
sleep(1);
$echo "3";
flush();
sleep(1);
$echo "goovo"

To bi trebalo da radi uvek... a ako koristis ob, onda bi trebalo da ob_flush() radi slicno.

mega023 24. 11. 2005. 22:36

ne radi

izbaci mi samo 123govno :)

btw: cemu sluzi $ ispred echo?

Citat:

Originalno napisao bluesman
Ne znam zasto nebi radilo, probaj obican primer:
PHP kôd:

$echo "1";
flush();
sleep(1);
$echo "2";
flush();
sleep(1);
$echo "3";
flush();
sleep(1);
$echo "goovo"

To bi trebalo da radi uvek... a ako koristis ob, onda bi trebalo da ob_flush() radi slicno.


bluesman 24. 11. 2005. 22:40

ups... izgleda da sam mnogo poludeo zbog utakmice... puče mi tiket od 43 000 dinara zbog zvezde...

Bez $ naravno.

Primer je bio da istestiraš flush() funkciju
PHP kôd:

echo "1";
flush();
sleep(1);
echo 
"2";
flush();
sleep(1);
echo 
"3";
flush();
sleep(1);
echo 
"gotovo"

trebalo bi na svaki sekund da ti se pojavljuje 1, 2, 3... gotovo.

Ma šta ja njamke... idem bre da spavam. :)

mega023 24. 11. 2005. 22:42

ma zanam to... ali nije...
pojavilo se sve odjednom....

(imas li ICQ/MSN da ti dam URL da isprobas)

zekica 25. 11. 2005. 09:52

A zasto ne probas da pre funkcije flush pozoves ob_end_flush() (samo prvi put)?

Mislim da ce tako raditi...

mega023 25. 11. 2005. 11:55

Citat:

Originalno napisao zekica
A zasto ne probas da pre funkcije flush pozoves ob_end_flush() (samo prvi put)?

Mislim da ce tako raditi...


ne radi ni tako....

noviKorisnik 25. 11. 2005. 12:26

U dokumentaciji piše
Citat:

flush() has no effect on the buffering scheme of your webserver or the browser on the client side. Thus you need to call both ob_flush() and flush() to flush the output buffers.
Tako da ovo radi
PHP kôd:

<?php
$ekhm 
0;
for (;;)
{
    
sleep (1);
    echo ++
$ekhm "<br />\r\n";
    
ob_flush ();
    
flush();
}
?>


noviKorisnik 25. 11. 2005. 12:31

E da, naravno, sleep () je ovde samo za demonstraciju. Nego - šta je uzrok izvršavanja skripte od desetak sekundi?

mega023 25. 11. 2005. 12:54

ma izgleda da to sve i radi
nego kod mene je izgleda problem u konfiguraciji apache-a ili u upotrebi gzipa

upravo sam isprobao na drugom serveru i sve radi normalno...
sada me zanima jos kako da to sredim/ugasim....


evo sta kaze php.net:
Server modules for Apache like mod_gzip may do buffering of their own that will cause flush() to not result in data being sent immediately to the client.


e sad da li je do mod_gzip-a ili do Zend-a nisam siguran
ali mi se cini da je do mod_gzip-a


Vreme je GMT +2. Trenutno vreme je 00:55.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.