Chức năng điều khiển đầu ra PHP
PHP cung cấp một tập hợp các chức năng kiểm soát nội dung nào được gửi đến trình duyệt và khi nào. Điều này được gọi là kiểm soát đầu ra.output control.
Đầu ra có thể đến từ bất kỳ nguồn nào sau đây:
echo
,print
,printf
, ________ 3 ... và các chức năng và tuyên bố tương tự khác- Thông báo, cảnh báo và lỗi từ PHP
- Bất kỳ nội dung nào bên ngoài thẻ
PHP và phần phụ trợ mà nó đang chạy có thể giữ đầu ra trong bộ đệm trước khi gửi cho người dùng.
Lưu ý: Các chức năng điều khiển đầu ra có thể tạo bất kỳ số lượng bộ đệm đầu ra nào. Bộ đệm đầu ra bắt đầu ra được đưa ra bởi chương trình. Mỗi bộ đệm đầu ra mới được đặt trên đỉnh của một chồng bộ đệm đầu ra và bất kỳ đầu ra nào mà nó cung cấp sẽ bị bắt bởi bộ đệm bên dưới nó. Các hàm điều khiển đầu ra chỉ xử lý bộ đệm trên cùng, do đó, bộ đệm trên cùng phải được tháo ra để điều khiển các bộ đệm bên dưới nó. The output control functions can create any number of output buffers. Output buffers catch output given by the program. Each new output buffer is placed on the top of a stack of output buffers, and any output it provides will be caught by the buffer below it. The output control functions handle only the topmost buffer, so the topmost buffer must be removed in order to control the buffers below it.
Cài đặt
Các chức năng điều khiển đầu ra PHP là một phần của lõi PHP. Không cần cài đặt để sử dụng các chức năng này.
Cấu hình thời gian chạy
Hành vi của các chức năng điều khiển đầu ra bị ảnh hưởng bởi các cài đặt trong php.ini:
output_buffering | "0" | Cho phép bộ đệm đầu ra cho tất cả các tệp PHP theo mặc định | 4 |
output_handler | VÔ GIÁ TRỊ | Đặt tên của hàm mặc định để xử lý đầu ra của tất cả các bộ đệm đầu ra | 4 |
Inspicit_flush | "0" | Cho phép bộ đệm đầu ra cho tất cả các tệp PHP theo mặc định | 4 |
output_handler | VÔ GIÁ TRỊ | Đặt tên của hàm mặc định để xử lý đầu ra của tất cả các bộ đệm đầu ra | 4.3 |
Inspicit_flush | Cho phép xả ngầm, gây ra đầu ra được gửi trực tiếp đến trình duyệt trên mỗi câu lệnh đầu ra | url_rewriter.tags | 7.1 |
Chức năng điều khiển đầu ra PHP
url_rewriter.hosts | Giá trị hiện tại của $ _Server ['http_host']]] |
Việc viết lại URL chỉ được thực hiện trên URL của máy chủ theo mặc định. Để cho phép viết lại các URL của các trang web khác, hãy đặt tên máy chủ của các trang web khác ở đây. | Phương pháp |
Hàm số | tuôn ra[] |
Cố gắng gửi nội dung từ bộ đệm đầu ra của hệ thống đến trình duyệt | ob_clean [] |
Xóa tất cả nội dung khỏi bộ đệm đầu ra cao nhất | ob_end_clean [] |
Xóa bộ đệm đầu ra cao nhất và tất cả các nội dung của nó | ob_end_flush [] |
Xóa bộ đệm đầu ra cao nhất và đầu ra nội dung của nó | ob_flush [] |
Đầu ra nội dung của bộ đệm đầu ra cao nhất và xóa bộ đệm | ob_get_clean [] |
Trả về tất cả các nội dung của bộ đệm đầu ra cao nhất và xóa bộ đệm | ob_get_contents [] |
Trả về nội dung của bộ đệm đầu ra cao nhất | ob_get_flush [] |
Đầu ra và trả về nội dung của bộ đệm đầu ra cao nhất và sau đó xóa bộ đệm | ob_get_length [] |
Trả về số byte dữ liệu nằm trong bộ đệm đầu ra cao nhất | ob_get_level [] |
Trả về một số cho biết có bao nhiêu bộ đệm đầu ra trên ngăn xếp | ob_get_status [] |
Trả về thông tin về bộ đệm đầu ra | ob_gzhandler [] |
Được sử dụng làm hàm gọi lại cho ob_start [] để nén nội dung của bộ đệm khi gửi nó đến trình duyệt | ob_implicit_flush [] |
Bật hoặc tắt hết hoặc tắt | ob_list_handlers [] |
Trả về một mảng tên hàm gọi lại đang được sử dụng bởi bộ đệm đầu ra cao nhất | ob_start [] |
16 năm trước
print_r
2- quản trị trang web tại Wistex dot com
- Trucex [um, at] gmail [um, dot] com ¶
- Đầu ra PHP đến đâu?
- Nếu nó được bật thì đầu ra stdout vẫn sẽ đi đến đầu ra tiêu chuẩn của bảng điều khiển/trình duyệt nhưng PHP: // Đầu ra sẽ đi đến bộ đệm cho đến khi bộ đệm đạt đến dung lượng hoặc bạn tự tắt bộ đệm.
- OB_GET_CLEAN - Nhận nội dung bộ đệm hiện tại và xóa bộ đệm đầu ra hiện tại
- ob_get_contents - Trả về nội dung của bộ đệm đầu ra
- OB_GET_FLUSH - Xóa bộ đệm đầu ra, trả về nó dưới dạng chuỗi và tắt bộ đệm đầu ra
- ob_get_length - Trả về độ dài của bộ đệm đầu ra
- OB_GET_LEVEL - Trả lại mức độ lồng của cơ chế bộ đệm đầu ra
- OB_GET_STATUS - Nhận trạng thái của bộ đệm đầu ra
- OB_GZHANDLER - Chức năng gọi lại OB_START thành bộ đệm đầu ra GZIP
- ob_implicit_flush - bật/tắt hết lỗi
- OB_LIST_HANDLERS - Liệt kê tất cả các trình xử lý đầu ra đang sử dụng
- OB_start - Bật bộ đệm đầu ra
- OUTPUT_ADD_REWRITE_VAR - Thêm các giá trị ghi URL
- OUTPUT_RESET_REWRITE_VARS - Đặt lại các giá trị ghi URL
jgeewax a t gmail ¶ ¶
15 năm trước
It seems that while using output buffering, an included file which calls die[] before the output buffer is closed is flushed rather than cleaned. That is, ob_end_flush[] is called by default.
This ends up printing "b" rather than nothing as ob_end_flush[] is called instead of ob_end_clean[]. That is, die[] flushes the buffer rather than cleans it. This took me a while to determine what was causing the flush, so I thought I'd share.
Ẩn danh ¶ ¶
13 năm trước
You possibly also want to end your benchmark after the output is flushed.
0
1
2
3