Tôi đang cố gắng làm quen với hàm flush() của PHP cho một dự án tôi đang làm, tôi đã tự viết một vài kịch bản và tải chúng lên một số không gian web mà tôi sở hữu; nhưng có vẻ như không ai trong số họ làm việc. Tôi đã chọn phần dưới đây từ một bình luận trên PHP.net và đã thử nó:PHP flush() dường như hoạt động trên máy Linux của tôi nhưng không hoạt động trên máy tính của tôi?
<?php
header('Content-type: text/html; charset=utf-8');
echo 'Begin ...<br />';
for($i = 0 ; $i < 10 ; $i++)
{
echo $i . '<br />';
flush();
sleep(1);
}
echo 'End ...<br />';
Dường như tập lệnh STILL không hoạt động.
sau đó tôi đọc một bình luận nói rằng:
Nếu bạn gọi ob_flush() và flush() và vẫn không nhận được bộ đệm đỏ mặt nó có thể là do một số phần mềm chống virus (Panda trong trường hợp này) giữ bộ đệm cho đến khi trang tải xong trước khi gửi đến trình duyệt.
Vì vậy, tôi quyết định yêu cầu trang web trên máy tôi đã sử dụng Linux (Ubuntu 12.04) vì không cài đặt bất kỳ phần mềm diệt vi-rút nào; và nó hoạt động hoàn hảo!
Tôi không biết điều này có liên quan gì đến phần mềm chống vi-rút không? Hoặc một số cơ chế lạ khác trong Windows đang ngăn ngừa flush() từ việc đạt được mục đích, tôi đang sử dụng cùng một trình duyệt trên cả hai máy (Firefox 14.0.1) vì vậy tôi nghi ngờ nó có thể là vậy. Vì vậy, tôi đoán câu hỏi thực sự của tôi là: Không ai biết bất cứ điều gì về phần mềm chống virus ngăn ngừa tuôn ra() từ việc đạt được mục đích của nó (vì tôi dường như không thể tìm thấy bất cứ điều gì về nó trực tuyến)? Và nếu có, có cách nào để vượt qua nó không? EDIT: Chỉ cần để làm sáng tỏ, tôi tích cực này không phải là phía máy chủ, tôi có một máy chủ web bên ngoài chạy Linux, tôi không lưu trữ các kịch bản tại địa phương trên một trong hai máy Linux hoặc Windows.
EDIT2: Tôi đã thử điều này xung quanh một nhà bạn bè trên máy tính xách tay Linux mà tôi quản lý để làm cho nó hoạt động tại nhà của tôi, kỳ lạ mã tuôn ra cũng không làm việc tại nhà của họ (thay vì nó chỉ mất lứa tuổi để tải và tất cả đều xuất hiện cùng lúc) điều này lạ khi nó hoạt động trên máy tính xách tay này trong nhà của tôi, tôi không chắc liệu các router có liên quan đến chức năng flush() hay không.) bởi vì đó là điều duy nhất tôi có thể nghĩ về điều đó có thể can thiệp vào nó.
Nếu không, tôi đã không tiến triển cố gắng để giải quyết vấn đề này, điều này chắc chắn không liên quan đến kết thúc của máy chủ, điều này là lạ vì hầu hết thông tin tôi tìm thấy đang nói về máy chủ là vấn đề khi hàm flush() không hoạt động:/
Thật trùng hợp tôi cũng đã thử trên máy tính chạy Norton (thay vì AVG) tại nhà tôi, nó hoạt động nhưng không hoàn toàn 100%.
Tôi biết điều này chắc chắn là phía máy khách và không phải phía máy chủ, mặc dù trang đó hoạt động hoàn hảo khi được hiển thị trong Firefox trong Linux, nhưng không ổn trong Windows. Điều này khiến tôi nghĩ đây không phải là vấn đề liên quan đến trình duyệt. . . dường như loại bỏ tất cả các giải thích trong câu nói đó:/ – Sean
@SeanDunwoody: Làm sao bạn biết nó không phải là phía máy chủ? Máy chủ là một chương trình khác nhau theo từng hệ điều hành. Cũng vậy với trình duyệt. – Jon
Không, xin lỗi tôi nghĩ rằng bạn hiểu sai, tôi có một máy chủ lưu trữ này chạy Linux, tôi không lưu trữ địa phương này trên máy hoặc – Sean