Ошибка PHP: ob_flush () [ref.outcontrol]: не удалось очистить буфер. Нет буфера для сброса

Может ли кто-нибудь сохранить эти 2 файла, запустить их и сообщить мне, почему я получаю ошибку «ob_flush () [ref.outcontrol]: не удалось очистить буфер. Нет буфера для очистки ". Я пробовал погуглить, и там написано, что мне нужно использовать ob_start (); но когда я это сделаю, он не распечатает построчно, а вернет весь объект из цикла FOR после его завершения. Я новичок в PHP, поэтому не знаю, где еще искать.

test_process.php

// This script will write numbers from 1 to 100 into file
// And sends continuously info to user
$fp = fopen( '/tmp/output.txt', 'w') or die('Failed to open');
set_time_limit( 120);
ignore_user_abort(true);

for( $i = 0; $i < 100; $i++){
    echo "<script type=\"text/javascript\">parent.document.getElementById( 'foo').innerHTML += 'Line $i<br />';</script>";
    echo str_repeat( ' ', 2048);
    flush();
    ob_flush();
    sleep(1);
    fwrite( $fp, "$i\n");
}

fclose( $fp);

main.html

<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript" charset="utf-8"></script>

        <style type="text/css" media="screen">
            .msg{ background:#aaa;padding:.2em; border-bottom:1px #000 solid}
            .new{ background-color:#3B9957;}
            .error{ background-color:#992E36;}
        </style>

    </head>
    <body>

        <iframe id="loadarea" width="1024px" height="768px"></iframe><br />
        <script>
            function helper() {
                document.getElementById('loadarea').src = 'test_process.php';
            }
            function kill() {
                document.getElementById('loadarea').src = '';
            }
        </script>

        <input type="button" onclick="helper()" value="Start">
        <input type="button" onclick="kill()" value="Stop">
        <div id="foo"></div>


</body>
</html>
12
задан ThreaT 7 February 2012 в 18:54
поделиться