2011-09-11 31 views
33

Cả hai dường như làm điều tương tự: trả lại nội dung bộ đệm đầu ra cho bạn và xóa bỏ nó sau.Sự khác biệt giữa ob_get_clean và ob_get_flush

Tôi nên sử dụng cái nào?

+6

Rút bỏ phiếu giảm giá của tôi vì tôi cũng không hiểu rõ. "đầu ra", mà tôi nghĩ rằng nó hiện) –

+0

... vì vậy không ai biết? – EEka

+9

Kiên nhẫn, trẻ padawan! Đó là chỉ 6 phút và 10 lần xem trang. – JJJ

Trả lời

-6

Trực tiếp cố gắng trả lời câu hỏi của bạn:

Nếu bạn muốn bắt đầu sản lượng đệm lại sau đỏ bừng bộ đệm, sau đó sử dụng ob_get_clean như đầu ra đệm vẫn sẽ sẵn sàng mà không cần phải bật nó trở lại. (nhớ điều này chỉ có thể được sử dụng nếu không có văn bản, thậm chí khoảng trắng được lặp lại cho trình duyệt). Vì vậy, để sử dụng tổng quát hơn, tất cả các sách chương trình của tôi đều hướng tới ob_get_flush (vì chỉ có một bộ đệm cho hầu hết các tập lệnh)

+3

'ob_get_clean' kết thúc bộ đệm đầu ra. Bạn sẽ cần phải bật lại. –

+1

Nó không phải là câu trả lời đúng như được chỉ ra ở trên. Kiểm tra câu trả lời của arnaud576875 bên dưới. – jcisio

94

ob_get_clean() xóa bộ đệm (không in ra) và trả về nội dung của bộ đệm.

ob_get_flush() in bộ đệm, xóa bộ đệm và trả về nội dung của bộ đệm.

+0

Mặc dù cũ, nhưng đã cứu tôi vô số gãi đầu. Đầu ra !! –

+1

OP đã không quay lại từ ngày 11 tháng 9! – revo

17

ob_get_clean sẽ chỉ trả lại nội dung của bộ đệm và gán nó cho bất kỳ biến nào bạn muốn, nhưng nó sẽ không xuất ra bất kỳ thứ gì.

ob_get_flush mặt khác, làm mọi thứ mà ob_get_clean làm, nhưng nó cũng xuất nội dung.

7

Cả hai chức năng đều xóa bộ đệm đầu ra, tắt bộ đệm đầu ra và trả về giá trị bộ đệm trước đó.

Tuy nhiên, ob_get_flush trước tiên gửi bộ đệm hiện tại cho ứng dụng khách, trong khi ob_get_clean chỉ loại bỏ bộ đệm đó.

+1

+1 để đề cập đến 'ob_get_flush' sẽ tắt chế độ đệm – NullUserException

+0

-1 để nói rằng ob_get_clean" không thay đổi tùy chọn bộ đệm ". Điều này là không chính xác - cả hai thực sự tắt đệm. Từ trang người đàn ông cho ob_get_clean "Trả về nội dung của bộ đệm đầu ra và bộ đệm đầu ra kết thúc". Cũng không phải rất rõ ràng để nói rằng nó loại bỏ bộ đệm. Nó không - nó trả về nó như những câu trả lời khác nói. Loại bỏ ngụ ý với tôi rằng nó ném nó đi hoàn toàn. – Adam

+0

@Adam Great catch, viết lại câu trả lời. Loại bỏ và tuôn ra là các thuật ngữ mức mạng, nhưng phiên bản mới phải làm rõ điều đó. – phihag

Các vấn đề liên quan