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ý de,
v případě použití příkazu implicit_flush je potřeba ideálně nastavit hlavičky, tedy
header('X-Accel-Buffering: no'); // 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"); header("Content-Encoding: none");
Dále, pokud použijete ob_flush(), je potřeba nejdříve použít ob_start()
ob_start(); for($i=0; $i<10; $i++){ echo $i ."<br />"; ob_flush(); sleep(1); flush();
Tento kód mi v pořádku funguje.
Role: Podpora Web: https://stackoverflow.com/ Vizitka: Roses are Red, Violets are Blue Unexpected '{' on line 32.
JŠ255861 Odpověděl na otázku 25. 8. 2021