詳解PHP ob start 函式的功能要點

2021-08-31 02:21:40 字數 1221 閱讀 6186

php函式的運用範圍非常廣泛,我們可以在不斷的實踐中去體會這些函式給我們帶來的好處。下面我們就來具體分析一下有關php ob_start()函式的功能特點。

比如你用得到伺服器和客戶端的設定資訊,但是這個資訊會因為客戶端的不同而不同,如果想要儲存phpinfo()函式的輸出怎麼辦呢?在沒有緩衝區控制之前,可以說一點辦法也沒有,但是有了緩衝區的控制,我們可以輕鬆的解決:

1. < ?php

2. ob_start(); //開啟緩衝區

3. phpinfo(); //使用phpinfo函式

4. $info=ob_get_contents(); //得到緩衝區的內容並且賦值給$info

5. $file=fopen(』info.txt』,'w』); //開啟檔案info.txt

6. fwrite($file,$info); //寫入資訊到info.txt

7. fclose($file); //關閉檔案info.txt

8. ?>

用以上的方法,就可以把不同使用者的phpinfo資訊儲存下來,這在以前恐怕沒有辦法辦到!其實上面就是將一些「過程」轉化為「函式」的方法!

或許有人會問:「難道就這個樣子嗎?還有沒有其他用途?」當然有了,比如筆者論壇的php 語法加亮顯示就和這個有關(php預設的語法加亮顯示函式會直接輸出,不能儲存結果,如果在每次呼叫都顯示恐怕會很浪費cpu,筆者的論壇就把語法加亮函式顯示的結果用控制緩衝區的方法保留了)。

可能現在大家對php ob_start()函式的功能有了一定的了解,上面的乙個例子看似簡單,但實際上已經掌握了使用ob_start()的要點。

<1>.使用php ob_start()函式開啟browser的cache,這樣可以保證cache的內容在你呼叫flush(),ob_end_flush()(或程式執行完畢)之前不會被輸出。

<2>.現在的你應該知道你所擁有的優勢:可以在任何輸出內容後面使用header,setcookie以及session,這是 php ob_start()函式乙個很大的特點;也可以使用ob_start的引數,在cache被寫入後,然後自動執行命令,比如 ob_start(」ob_gzhandler」);而我們最常用的做法是用ob_get_contents()得到cache中的內容,然後再進行處理……

<3>.當處理完畢後,我們可以使用各種方法輸出,flush(),ob_end_flush(),以及等到程式執行完畢後的自動輸出。當然,如果你用的是ob_get_contents(),那麼就要你自己控制輸出方式了。

詳解PHP ob start 函式的功能要點

比如你用得到伺服器和客戶端的設定資訊,但是這個資訊會因為客戶端的不同而不同,如果想要儲存phpinfo 函式的輸出怎麼辦呢?在沒有緩衝區控制之前,可以說一點辦法也沒有,但是有了緩衝區的控制,我們可以輕鬆的解決 ob start 開啟緩衝區 phpinfo 使用phpinfo函式 info ob ge...

詳解PHP ob start 函式的功能要點

php函式的運用範圍非常廣泛,我們可以在不斷的實踐中去體會這些函式給我們帶來的好處。下面我們就來具體分析一下有關php ob start 函式的功能特點。比如你用得到伺服器和客戶端的設定資訊,但是這個資訊會因為客戶端的不同而不同,如果想要儲存phpinfo 函式的輸出怎麼辦呢?在沒有緩衝區控制之前,...

php ob start及其相關方法詳解

php函式中,有一組以ob 開頭的函式,被稱為output control函式,通過設定緩衝區用來控制資料的輸出,其中ob start為開啟緩衝區。當使用者開啟了緩衝區,所有將要輸出到頁面的資訊將先被放置在緩衝區內,直到你用 flush 或者 ob end flush 才會輸出到頁面上。不過對使用 ...