Trong PHP, tính năng đệm đầu ra được sử dụng để kiểm soát đầu ra của chương trình. Việc kiểm soát đầu ra sẽ được thực hiện đối với thời gian gửi đầu ra tới trình duyệt, thứ tự đầu ra, v.v. Show
Thông thường, mỗi đoạn dữ liệu được chỉ định dưới dạng các câu lệnh in PHP hoặc dưới dạng nội dung HTML ở giữa các tập lệnh PHP sẽ được gửi tới trình duyệt sau khi nó sẵn sàng. Tuy nhiên, bằng cách sử dụng bộ đệm đầu ra PHP, các khối dữ liệu này sẽ được lưu trữ trong bộ đệm Cấu hình bộ đệm đầu ra PHPĐể kiểm soát đầu ra của chương trình PHP thông qua bộ đệm, chúng ta cần kích hoạt bộ đệm đầu ra bằng cách sử dụng bất kỳ một trong hai phương pháp sau
Đặt chỉ thị cấu hình bộ đệm đầu ra PHPCó ba chỉ thị cấu hình được sử dụng cho điều khiển đầu ra này. Đó là,
Đầu tiên, hai lệnh có thể được đặt trong bất kỳ một trong các tệp, php. ini,. htaccess, httpd. conf hoặc người dùng. ban đầu. Và, chỉ thị cấu hình cuối cùng của danh sách trên sẽ được đặt theo bất kỳ cách nào, kể cả với hàm ini_set() Kích hoạt kiểm soát bộ đệm đầu ra bằng các hàm PHPBằng cách đặt các lệnh trên với các tệp cấu hình PHP, sẽ ảnh hưởng đến tất cả các tập lệnh PHP. Tuy nhiên, việc kích hoạt bộ đệm đầu ra PHP trên cơ sở cần thiết sẽ tốt hơn cho cấu hình toàn cầu này Vì vậy, PHP bao gồm các hàm PHP để kiểm soát bộ đệm đầu ra. Chúng được liệt kê dưới đây với mô tả ngắn của họ
Ví dụ về bộ đệm đầu ra PHPBằng cách sử dụng các chức năng chính ở trên của bộ đệm đầu ra PHP, chúng ta sẽ xem một chương trình ví dụ
Trong chương trình PHP ở trên, chúng tôi đã tạo một bộ đệm bằng cách sử dụng ob_start() trong dòng đầu tiên. Và sau đó, dữ liệu được chỉ định với câu lệnh in PHP được lưu trữ trong bộ đệm này. Và, một hàm khác ob_end_flush() được gọi để xóa dữ liệu trong bộ đệm và hủy bộ đệm sau đó Và sau đó, một lần nữa ob_start() được gọi để tạo bộ đệm mới chứa đầy dữ liệu in. Nhưng, lần này, PHP ob_flush được sử dụng thay vì ob_end_flush(). Vì vậy, nó sẽ chỉ xóa dữ liệu được lưu trong bộ đệm vào màn hình của người dùng và không phá hủy bộ đệm Vì vậy, câu lệnh in thứ ba sẽ lưu trữ dữ liệu trong bộ đệm được tạo gần đây Chức năng kiểm soát bộ đệm đầu raNgoài danh sách các chức năng chính ở trên, PHP hỗ trợ một số chức năng trong phần mở rộng này. Chúng được sử dụng để đối phó với danh sách các chức năng sau đây
Bây giờ, chúng ta hãy xem tất cả các hàm PHP bằng cách phân loại chúng theo danh sách các chức năng đệm đầu ra ở trên Đọc dữ liệu từ bộ đệm đầu raSử dụng chức năng bộ đệm đầu ra PHP, chúng ta có thể nhận được các chi tiết như nội dung của bộ đệm, độ dài của dữ liệu được đệm, v.v.
Bộ đệm đầu ra xếp chồngChúng ta có thể lấy ví dụ trước để tìm hiểu cách chuyển các bộ đệm tiếp theo thành một ngăn xếp. Nếu chúng ta tạo bộ đệm sau đó bằng cách gọi ob_start(), thì mỗi bộ đệm mới được tạo sẽ được đẩy lên ngăn xếp trên đầu bộ đệm đầu ra trước đó. Ví dụ,
Nén dữ liệu đệmTrong PHP, dữ liệu đầu ra được đệm sẽ được nén bằng cách chỉ định ob_gzhandler làm đối số của hàm ob_start(). ob_gzhandler() là một hàm PHP dựng sẵn, được sử dụng làm hàm gọi lại. Với sự trợ giúp của cuộc gọi lại này, PHP trả về dữ liệu nén cho trình duyệt Mặc dù phải mất một thời gian để nén dữ liệu đầu ra, nhưng thời gian trình duyệt tải xuống dữ liệu nén sẽ giảm xuống Viết lại URLCó thêm hai chức năng kiểm soát bộ đệm đầu ra PHP khi làm việc với viết lại URL. Đó là, Làm cách nào để đặt bộ đệm đầu ra trong PHP?Bạn có thể bật tính năng đệm đầu ra cho tất cả các tệp bằng cách đặt lệnh này thành 'Bật' . Nếu bạn muốn giới hạn kích thước của bộ đệm ở một kích thước nhất định - bạn có thể sử dụng số byte tối đa thay vì 'Bật', làm giá trị cho chỉ thị này (e. g. , output_buffering=4096). Lệnh này luôn Tắt trong PHP-CLI.
Tại sao sử dụng bộ đệm đầu ra trong PHP?Chỉ bật tính năng đệm đầu ra giảm lượng thời gian tải xuống và hiển thị HTML của chúng tôi trong trình duyệt . Do đó, nó làm giảm thời gian thực thi của tập lệnh PHP.
Làm cách nào để tắt bộ đệm đầu ra trong PHP Joomla?Làm cách nào để tắt tính năng đệm đầu ra của Joomla? . Điều hướng đến phần Quản trị Trang web của trang web Joomla của bạn Chọn tab Tùy chọn Trong tiêu đề Đầu ra, bỏ chọn hộp bên cạnh Bộ đệm đầu ra Nhấp vào Lưu thay đổi Trang web Joomla của bạn bây giờ sẽ xuất tất cả nội dung trực tiếp ra màn hình mà không cần bất kỳ bộ đệm nào Giới hạn của bộ đệm đầu ra trong PHP là gì?Khi kích thước bộ đệm vượt quá 4096 byte , PHP sẽ tự động thực thi flush , nghĩa là. bộ đệm được làm trống và gửi đi. Điều tương tự cũng có thể đạt được bằng cách đặt lệnh output_buffering , lệnh này bị bỏ qua trong CLI. |