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); } ?>
11 Answers
Dobrý den,
omlouvám se, kód má být takto
ob_start(); for($i=0; $i<10; $i++){ echo $i ."<br />"; echo str_repeat(' ',1024*64); ob_flush(); sleep(1); flush(); }
Dobrý den,
Konfigurace PHP se provádí v administraci -> https://kb.wedos.com/cs/webhosting/nastaveni/webhosting-konfigurace-php/. Provedl jste změny na potřebných místech?
Nastavil som to v php.ini, obrazok ako to mam nastavene
https://zverejnovanie.markusovce.eu/testx.php
Dobrý den,
zkuste si do souboru .htaccess přidat tyto pravidla (zakázání cachování):
# DISABLE CACHING <IfModule mod_headers.c> Header set Cache-Control "no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires 0 </IfModule>
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.