Tôi đang sử dụng PHP 5.3.4 với Apache 2.2.17 trên hệ thống Windows 7 x64. Tôi muốn có trang PHP của tôi xuất kết quả của một cuộc gọi system
trong thời gian thực tới trình duyệt của người dùng. Cuối cùng, tôi đã cấu hình output_buffering=Off
trong php.ini và tạo ra mã này:quá trình in ra trong thời gian thực
<?php
ob_implicit_flush(true);
ob_end_flush();
system('ping -n 10 www.google.com');
?>
Kết quả của lệnh ping được in trong thời gian thực, nhưng tôi cũng nhận được một lỗi chẩn đoán PHP và callstack ở đầu trang của tôi có nội dung:
Notice: ob_end_flush() [ref.outcontrol]: failed to delete and flush buffer. No buffer to delete or flush in index.php on line 3
Tôi cần phải làm gì để sửa hoặc loại bỏ lỗi này?
Cập nhật Nếu tôi thay đổi ob_end_flush()
để $a = 1/0;
tôi nhận được một lỗi tương tự và kết quả là thời gian thực trong tất cả các trình duyệt. Có một cái gì đó về cách ngoại lệ được in mà gây ra điều này để làm việc?
Remove 'ob_end_flush(); ' – Grexis
Nếu tôi loại bỏ nó hoặc ngăn chặn với @, đầu ra là không còn thời gian thực trong Chrome 16 hoặc Firefox 10. (Mặc dù, nó hoạt động trong IE9) – PaulH
Thật lạ lùng, nhưng hãy xem câu trả lời của tôi bên dưới. – Grexis