Trong quá trình làm việc, php-scripts có thể hiển thị kết quả khi script được thực thi, hoặc tích lũy dữ liệu, chờ quá trình thực thi hoàn chỉnh và hoàn thành script. Việc lựa chọn một trong các tùy chọn này phụ thuộc vào giá trị được gán trong cài đặt trình thông dịch php cho biến chịu trách nhiệm đệm đầu ra dữ liệu. Có một số cách để thay đổi nó.
Hướng dẫn
Bước 1
Nếu bạn cần vô hiệu hóa bộ đệm đầu ra cho tất cả các tập lệnh php đang chạy trên máy chủ hoặc trên trang web, thì cách đúng nhất để thực hiện việc này là thông qua tệp php.ini. Khi khởi chạy mỗi tập lệnh, trình thông dịch ngôn ngữ php đọc các cài đặt từ tệp cấu hình này, do đó, đặt trong đó lệnh tắt bộ đệm của đầu ra của đầu ra của tập lệnh là giải pháp tối ưu nhất. Mở tệp trong bất kỳ trình soạn thảo văn bản nào và sử dụng hộp thoại tìm kiếm để tìm chỉ thị được gọi là output_buffering. Giá trị của nó có thể là một số nguyên hoặc một biến logic (Bật hoặc Tắt), vì vậy thay vì giá trị mặc định, hãy nhập Tắt hoặc 0. Nếu chỉ thị này không có trong tệp cấu hình, hãy thêm một dòng bổ sung vào cuối các mục:
output_buffering = Tắt
Bước 2
Nếu bạn cần vô hiệu hóa tính năng đệm đầu ra cho các tập lệnh của một thư mục riêng biệt hoặc một nhóm các thư mục con, tốt hơn nên thực hiện việc này thông qua tệp htaccess. Tìm nó trong thư mục mong muốn và mở nó trong một trình soạn thảo văn bản. Nếu chưa có tệp nào như vậy, hãy tạo một tệp mới. Chỉ thị cần được thêm vào tương tự như chỉ thị được mô tả trong bước trước, nhưng trước khi thực hiện, bạn cần đánh dấu rằng đây là một trong các cài đặt php. Toàn bộ dòng sẽ trông như thế này:
php_flag output_buffering tắt
Đặt tệp htaccess đã tạo vào thư mục trên cùng của hệ thống phân cấp thư mục mà chỉ thị sẽ được thực thi.
Bước 3
Để tắt tính năng đệm trong một tập lệnh php, hãy sử dụng một trong các hàm tích hợp của ngôn ngữ này. ob_get_flush () trả về nội dung hiện tại của bộ đệm, sau đó xóa nó ra và tắt bộ đệm đầu ra. ob_end_flush () cũng làm như vậy, nhưng không trả về nội dung hiện tại của bộ đệm cho biến đã gọi nó, mà gửi nó đến thiết bị đầu ra. Ob_end_clean () chỉ đơn giản là xóa dữ liệu hiện tại trước khi tắt bộ đệm. Khi sử dụng một trong các hàm này, đừng quên bật lại tính năng đệm - hàm ob_start () dành cho việc này.