比如你用得到伺服器和客戶端的設定資訊,但是這個資訊會因為客戶端的不同而不同,如果想要儲存phpinfo()函式的輸出怎麼辦呢?在沒有緩衝區控制之前,可以說一點辦法也沒有,但是有了緩衝區的控制,我們可以輕鬆的解決:
<?phpob_start(); //開啟緩衝區
phpinfo(); //使用phpinfo函式
$info=ob_get_contents(); //得到緩衝區的內容並且賦值給
$info $file=fopen(』info.txt』,'w』); //開啟檔案info.txt
fwrite($file,$info); //寫入資訊到info.txt
fclose($file); //關閉檔案info.txt
?>
用以上的方法,就可以把不同使用者的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 函式的功能要點
php函式的運用範圍非常廣泛,我們可以在不斷的實踐中去體會這些函式給我們帶來的好處。下面我們就來具體分析一下有關php ob start 函式的功能特點。比如你用得到伺服器和客戶端的設定資訊,但是這個資訊會因為客戶端的不同而不同,如果想要儲存phpinfo 函式的輸出怎麼辦呢?在沒有緩衝區控制之前,...
詳解PHP ob start 函式的功能要點
php函式的運用範圍非常廣泛,我們可以在不斷的實踐中去體會這些函式給我們帶來的好處。下面我們就來具體分析一下有關php ob start 函式的功能特點。比如你用得到伺服器和客戶端的設定資訊,但是這個資訊會因為客戶端的不同而不同,如果想要儲存phpinfo 函式的輸出怎麼辦呢?在沒有緩衝區控制之前,...
php ob start及其相關方法詳解
php函式中,有一組以ob 開頭的函式,被稱為output control函式,通過設定緩衝區用來控制資料的輸出,其中ob start為開啟緩衝區。當使用者開啟了緩衝區,所有將要輸出到頁面的資訊將先被放置在緩衝區內,直到你用 flush 或者 ob end flush 才會輸出到頁面上。不過對使用 ...