Ai đó có thể vui lòng lưu 2 tệp này và chạy chúng và cho tôi biết tại sao tôi nhận được lỗi "ob_flush() [ref.outcontrol]: không thể xóa bộ đệm. Không có bộ đệm để xóa". Tôi đã thử googling xung quanh và nó nói rằng tôi phải sử dụng ob_start(); nhưng khi tôi làm như vậy nó không in ra từng dòng, mà là trả về toàn bộ đối tượng từ vòng lặp FOR khi nó đã hoàn thành. Tôi kinda mới để PHP vì vậy tôi không chắc chắn nơi khác để tìm ..Lỗi PHP: ob_flush() [ref.outcontrol]: không thể xóa bộ đệm. Không có bộ đệm để tuôn ra
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>
Kiểm tra cấu hình của bạn trong php.ini về đệm đầu ra, nó có thể được kích hoạt để on_start automaticly. Một cách khác để kiểm tra xem nó có được kích hoạt hay không bằng cách sử dụng ob_end_flush() khi bắt đầu và loại bỏ tất cả các lệnh xóa. Ngoài ra, bạn có thể kiểm tra bằng 'phpinfo(); ' – dvicino
Xin chào, cảm ơn phản hồi của bạn. Tôi đã cố gắng để kích hoạt bộ đệm đầu ra nhưng sau đó nó trả về toàn bộ cho đối tượng vòng lặp thay vì dòng theo dòng ... – ThreaT