php之ob start 緩衝區

2022-08-27 01:48:13 字數 1301 閱讀 1194

ob_get_contents()函式及與其相關幾個函式的用法

ob_start()

ob_get_contents(); 獲取緩衝區內容,如果是純 html內容或標籤,則都會放於瀏覽器的緩衝區中。

如果將ob_get_contents()獲取到的緩衝區的內容賦給乙個檔案,則緩衝區裡的內容會覆蓋檔案裡之前的內容

ob_end_clean():刪除內部緩衝區的內容,並且關閉內部緩衝區[刪除執行ob_end_clean()此函式 之前的所有echo print_r輸出到緩衝區的內容;刪除ob_end_clean()此函式 之前的html內容或標籤;定義的變數依然存在]

ob_end_flush() 傳送內部緩衝區的內容到瀏覽器,並且關閉輸出緩衝區

ob_get_length() 返回內部緩衝區的長度。

flush():重新整理緩衝區的內容,輸出。

ob_end_clean();

使用ob_start()把echo或print等輸出的內容輸至緩衝區,而不是到瀏覽器。

然後用ob_get_contents得到緩衝區的資料。

ob_start()在伺服器開啟乙個緩衝區來儲存所有的輸出。所以在任何時候使用任意個echo 等輸出,輸出都將被加入緩衝區中,直到程式執行結束或者使用ob_flush()來結束。然後在伺服器中緩衝區的內容才會傳送到瀏覽器,由瀏覽器來解析顯示。

函式ob_end_clean() 會清除緩衝區的內容.(並將緩衝區關閉,但不會輸出內容。)

此時在使用ob_end_clean()之前使用函式ob_get_contents()來獲得緩衝區的內容。

這樣的話, 能將在執行ob_end_clean()前把內容儲存到乙個變數中,然後在ob_end_clean()後面對這個變數做操作。

1

<?php

2ob_start

();3

echo 'aaaa

'; //

儲存至快取區

4$c = 'ccc';

5echo

$c; //

儲存至快取區

6$d = ob_get_contents

();7

//程式結束輸出以上echo在快取中的內容

8 ?>

1

<?php

2ob_start

();3

$a = 'aaaa';4

$b = ob_get_contents

();5

echo$b;

6//程式結束沒有任何輸出,因為雖然開啟了緩衝,但是緩衝區裡沒有被輸出內容

7 ?>

php 緩衝區,PHP的輸出緩衝區

1 什麼是緩衝區?緩衝區的作用是把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取,最本質的作用就是協調高速cpu和相對緩慢的io裝置 磁碟等 的運作。2 php在執行的時候,在什麼地方有用到緩衝區?當執行php的時候,如果碰到了echo print r之類的會輸出資料的 php就會將要輸出的資料放...

PHP的緩衝區

php 每執行一條輸出就把結果傳送給 php 緩衝區,php 緩衝區傳送給 apache 緩衝區,apache 緩衝區再傳送給瀏覽器。如果關閉 php 緩衝區,則每執行一條輸出就把結果直接傳送給apache 緩衝區。php.ini中 php 緩衝區預設設定 4096bytes output buff...

重新整理PHP緩衝區

為你的站點加速 php技巧 在當前 php 版本的預設配置下,輸出緩衝 output buffering 是被開啟的。舊版本則不是這樣,在舊版本的 php 中,字串在每次被輸出的時候 通過 echo 或 print 函式 都會觸發一次傳送到客戶端瀏覽器的動作。輸出緩衝 的引入,使得這一過程更加快速 ...