Hướng dẫn what is output buffer in php? - bộ đệm đầu ra trong php là gì?

Bộ đệm đầu ra là một phương pháp để nói với động cơ PHP để giữ dữ liệu đầu ra trước khi gửi nó đến trình duyệt. Như chúng ta biết PHP đã gửi dữ liệu đầu ra đến trình duyệt theo từng mảnh, nhưng nếu chúng ta sử dụng cơ chế đệm đầu ra, dữ liệu đầu ra được lưu trữ trong một biến và được gửi đến trình duyệt dưới dạng một phần ở cuối tập lệnh.

Thí dụ

Hãy trình bày với một ví dụ đơn giản.

& nbsp; bản demo trực tiếp

Đầu ra

string[5] "Hello"
string[20] "HelloTutorials Point"

Giải trình

Trong ví dụ trên ob_get_contents [] lấy tất cả các dữ liệu được thu thập kể từ khi chúng tôi gọi là ob_start, tức là mọi thứ trong bộ đệm. Sau đó gửi dữ liệu đầu ra cùng một lúc.

Ưu điểm của bộ đệm đầu ra

  • Bật bộ đệm đầu ra một mình làm giảm lượng thời gian cần thiết để 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 hiện của tập lệnh PHP.
  • Nếu bạn đã từng phải đối mặt với các tin nhắn như "Cảnh báo: Không thể sửa đổi thông tin tiêu đề - các tiêu đề đã được gửi bởi [đầu ra]" trong khi đặt cookie, bạn có thể giải quyết nó bằng bộ đệm đầu ra.

Cập nhật vào ngày 29 tháng 6 năm 2020 11:23:08

  • Câu hỏi và câu trả lời liên quan
  • Buffing đôi trong Java là gì?
  • Bộ đệm đầu vào trong thiết kế trình biên dịch là gì?
  • Buffering và bộ đệm trong một hệ điều hành xử lý hàng loạt là gì?
  • Luồng đầu ra tiêu chuẩn C ++ [COUT] là gì?
  • Sự khác biệt giữa việc gửi và đệm
  • Loại đầu ra nào được tạo ra bởi hàm unix_timestamp []?
  • HTML5 Canvas có hỗ trợ bộ đệm kép không?
  • Đặc điểm trong PHP là gì?
  • .Htaccess trong PHP là gì?
  • Đầu ra của MongoDB Profiler: Hoạt động lệnh của lệnh là gì?
  • Sự khác biệt giữa bộ đệm và bộ nhớ đệm trong hệ điều hành
  • Sự khác biệt giữa việc gửi và đệm trong hệ điều hành
  • Phương pháp quá tải trong PHP là gì?
  • Hàm tiêu đề [] trong PHP là gì?
  • Hàm bùng nổ [] trong PHP là gì?

TL; DR: Bộ đệm đầu ra là một cách để nói với PHP giữ một số dữ liệu trước khi nó được gửi đến trình duyệt. Sau đó, bạn có thể truy xuất dữ liệu và đặt nó vào một biến, thao tác và gửi nó đến trình duyệt sau khi bạn hoàn thành.: Output buffering is a way to tell PHP to hold some data before it is sent to the browser. Then you can retrieve the data and put it in a variable, manipulate it, and send it to the browser once you’re finished.

Umm, đây là một chút ngẫu nhiên?

Đúng nhưng không phải thế! Là một người làm việc với WordPress thường xuyên, bộ đệm đầu ra là một trong những khái niệm mà tôi đã gặp phải trong quá khứ và, cho đến bây giờ, không bao giờ cần phải hiểu. Đó là một ví dụ điển hình về việc học trên cơ sở của người Viking, điều đó, tôi nghĩ rằng hầu hết dân gian web sẽ đồng ý, là một phần cốt lõi của việc tham gia vào ngành của chúng tôi. Đặc biệt khi sử dụng các plugin và khung, chúng tôi liên tục bắt gặp mã nơi chúng tôi tạm dừng và nghĩ rằng, Uh Uh, tôi không biết điều đó làm gì thì đó là điều đó, chúng tôi di chuyển cùng với cuộc sống của mình. Tuy nhiên, đôi khi, chúng ta cần hiểu những gì mà Code Written-by-a-smarter-person-so với tôi, vì bất kỳ lý do gì.

Lỗ nghiên cứu của thỏ này bắt đầu với một câu hỏi tôi nhận được trong hộp thư đến của mình về gỗ, một plugin tôi thích sử dụng khi phát triển các trang web WordPress tùy chỉnh: Tiêu đề làm gì.php và footer.php làm trong một chủ đề gỗ?

Câu trả lời nhanh cho câu hỏi này là họ không làm gì cả; Chúng được yêu cầu cho một số plugin WordPress nhất định. Nhưng tôi đã không biết điều đó! Tôi không bao giờ phải chạm vào các tập tin đó trong thực tiễn phát triển của mình, thật kỳ lạ, vì vậy tôi bắt đầu điều tra. Các đoạn mã chính trong các tệp này là các hàm đệm đầu ra PHP [ob_start, ob_get_contents, v.v.].nothing; they are required for certain WordPress plugins. But I didn’t know that! I’d never had to touch those files in my development practice, oddly enough, so I began to investigate. The main pieces of code in these files were PHP output buffering functions [ob_start, ob_get_contents, etc].

Hãy để Lừa để lại các chi tiết gỗ trong một thời gian khác và đi sâu vào thứ PHP này được gọi là bộ đệm đầu ra.

Bộ đệm đầu ra là gì?

Bộ đệm đầu ra là gì? Hãy để giả vờ bạn, nhà phát triển đã có một cuộc trò chuyện với PHP:

Bạn: Hey Hey, PHP! Don Tiết gửi bất kỳ đầu ra nào cho trình duyệt ngay lập tức, giống như bạn thường làm. Tôi muốn làm một số công cụ lập trình cho nó trước, sau đó tôi sẽ nói với bạn khi nào nên gửi nó.

PHP: Hồi OK, tôi sẽ lưu trữ nó trong một thứ gọi là bộ đệm cho đến khi bạn nói với tôi khi nào nên gửi nó đến trình duyệt.buffer until you tell me when to send it to the browser.”

Bạn: Cảm ơn, PHP! Đừng lo lắng, bạn vẫn còn liên quan.

Nói cách khác, PHP sẽ gửi dữ liệu đến trình duyệt từ máy chủ ngay khi một hàm kết thúc. Ví dụ: nếu mã PHP của bạn là echo "Hi there";, chuỗi Hi Hi đó được gửi đến trình duyệt ngay sau khi chức năng Echo chạy. Tuy nhiên, nếu bạn chạy chức năng Echo đó khi bộ đệm đầu ra có hiệu lực, thì Hi Hi ở đó sẽ được lưu trữ trong ô giữ vô hình này được gọi là bộ đệm và sẽ không hiển thị trên trang cho đến khi bạn truy xuất nội dung của nó và gửi chúng đến Trình duyệt.

* Trong thời đại của JavaScript này, điều này, và điều đó, dường như gần như vô ích khi viết một bài viết chi tiết về sắc thái PHP nhỏ. Nhưng nó không phải! Đối với một, PHP là OG của lập trình cho Web và WordPress, được xây dựng trong PHP, cung cấp năng lượng 25% của web. JavaScript có thể ở đây để ở lại, nhưng PHP không đi đâu cả!

Chức năng

Một vài chức năng bộ đệm đầu ra phổ biến:

ob_start[] bật bộ đệm đầu ra. Nói cách khác, nó tạo ra bộ đệm [ô giữ vô hình] sẽ lưu trữ tất cả đầu ra sau khi nó được gọi.

ob_get_contents[] lấy tất cả các dữ liệu được thu thập kể từ khi chúng tôi gọi OB_Start, tức là mọi thứ trong bộ đệm. Thông thường, bạn sẽ gán điều này cho một biến.

ob_clean[] loại bỏ mọi thứ khỏi bộ đệm đầu ra. Lưu ý rằng nó không xuất hiện bất cứ điều gì.

ob_flush[] đầu ra nội dung từ bộ đệm. Lưu ý rằng nó không xóa bộ đệm.

string[5] "Hello"
string[20] "HelloTutorials Point"
0 về cơ bản chạy ob_get_contents[], loại bỏ kết quả và tắt bộ đệm đầu ra.

string[5] "Hello"
string[20] "HelloTutorials Point"
2 Đầu ra nội dung từ bộ đệm và kết thúc bộ đệm đầu ra. Nó không xóa bộ đệm.

Xem một danh sách đầy đủ ở đây.

Một ví dụ

Phần quan trọng nhất của việc sử dụng các chức năng bộ đệm đầu ra là nơi bạn đặt chúng. Bạn cần bắt đầu bộ đệm với ob_start ở đúng vị trí và bạn cần xuất bộ đệm vào trang hoặc vào một biến trước khi bạn làm trống nó.


Bài Viết Liên Quan

Chủ Đề