Zapnuty parameter implicit_flush nefunguje
Zdravim, na hostingu som zapol parameter „implicit_flush“
Jednoduchy kod vsak nefunguje. Co je potrebne este zapnut/vypnut aby mi kod vypisoval stale hodnotu? Na localhoste mi rovnaky kod funguje. Vopred vdaka za radu.
<?php header("X-Accel-Buffering: no"); ob_implicit_flush(true); ob_end_flush(); $max = 50; for ($i=0; $i<$max; $i++) { echo $i.'<br>'; $response = array( 'server time: ' . date("h:i:s", time()), 'progress' => round($i/$max*100)); echo json_encode($response); sleep(1); } ?>
Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
TF57053 Vybral nejlepší odpověď 25. 8. 2021
11 Answers
Dobrý den,
samotná fce je aktivní. Konkrétně ve Vašem kódu je problém se sleep(1), které patrně naráží na problém s time limitem.
Funguje mi u Vás tento kód
<?php // Set a valid header so browsers pick it up correctly. header('Content-type: text/html; charset=utf-8'); // Emulate the header BigPipe sends so we can test through Varnish. header('Surrogate-Control: BigPipe/1.0'); // Explicitly disable caching so Varnish and other upstreams won't cache. header("Cache-Control: no-cache, must-revalidate"); // Setting this header instructs Nginx to disable fastcgi_buffering and disable // gzip for this request. header('X-Accel-Buffering: no'); ob_implicit_flush(true); ob_end_flush(); $max = 50; for ($i=0; $i<$max; $i++) { echo $i.'<br>'; $response = array( 'server time: ' . date("h:i:s", time()), 'progress' => round($i/$max*100)); echo json_encode($response); } ?>
Nicméně se kód vypíše instantně a ne postupně. Tento problém jsem však zpozoroval i na jiném hostingu i na vlastním serveru. Zatím stále ověřuji čím přesně by to mohlo být způsobeno.
Role: Podpora Web: https://stackoverflow.com/ Vizitka: Roses are Red, Violets are Blue Unexpected '{' on line 32.
TF57053 publikoval nový komentář 8. 6. 2021