Bu kabuk komutları gerçek zamanlı çıktı göstermek için güzel bir yoldur:
<?php
header("Content-type: text/plain");
// tell php to automatically flush after every output
// including lines of output produced by shell commands
disable_ob();
$command = 'rsync -avz /your/directory1 /your/directory2';
system($command);
Çıktı tamponlama önlemek için bu işlevi gerekir:
function disable_ob() {
// Turn off output buffering
ini_set('output_buffering', 'off');
// Turn off PHP output compression
ini_set('zlib.output_compression', false);
// Implicitly flush the buffer(s)
ini_set('implicit_flush', true);
ob_implicit_flush(true);
// Clear, and turn off output buffering
while (ob_get_level() > 0) {
// Get the curent level
$level = ob_get_level();
// End the buffering
ob_end_clean();
// If the current level has not changed, abort
if (ob_get_level() == $level) break;
}
// Disable apache output buffering/compression
if (function_exists('apache_setenv')) {
apache_setenv('no-gzip', '1');
apache_setenv('dont-vary', '1');
}
}
Ben rağmen bunu denedim her sunucuda çalışmıyor, ben davranış bu tür işe almak için çalışırken saçını çekerek gerektiğini olup olmadığını belirlemek için php yapılandırması bakmak için tavsiyelerde ne isterdim sunucu üzerinde! Başka herkes biliyor musun?
İşte düz PHP bir kukla örnek:
<?php
header("Content-type: text/plain");
disable_ob();
for($i=0;$i<10;$i++)
{
echo $i . "\n";
usleep(300000);
}
Ben bu burada kendi yolunu googled başkalarına yardımcı olur umarım.