頁面緩衝就是把頁面儲存到一個檔案中,下次讀出時直接調用檔案而不查詢資料庫,這裡我們介紹利用ob_start()來實現。
例
代碼如下 |
複製代碼 |
ob_start(); //開啟緩衝區 phpinfo(); //使用phpinfo函數 $info=ob_get_contents(); //得到緩衝區的內容並且賦值給$info $file=fopen(’info.txt’,’w’); //開啟檔案info.txt fwrite($file,$info); //寫入資訊到info.txt fclose($file); //關閉檔案info.txt //或直接用 file_put_content('info.txt',$info); ?> |
以上的方法,可以把不同使用者的phpinfo資訊儲存下來。
這裡我們可以著重看看這個方法的提示,用這個方法可以實現產生靜態頁面的便利!
並且用這個方法比用file_get_conents()的方法更合理更有效率。
簡單的說個應用吧,比如想要把phpinfo()的內容寫入檔案,可以這樣做:
代碼如下 |
複製代碼 |
ob_start(); $phpinfo = phpinfo(); //寫入檔案 ob_end_flush(); 或者還有這樣的用途: ob_start(); //開啟緩衝區 echo "Hellon"; //輸出 header("location:index.php"); //把瀏覽器重新導向到index.php ob_end_flush();//輸出全部內容到瀏覽器 |
header()會發送一段檔案頭給瀏覽器,但是如果在header()之前已經有了任何輸出(包括空輸出,比如空格,斷行符號和換行)就會報錯。但是如果輸出在ob_start()和ob_end_flush()之間,就會沒有問題。因為在輸出前開啟了緩衝區,echo後面的字元就不會輸出到瀏覽器,而是保留在伺服器,知道使用flush才會輸出,所以header()會正常執行。
當然,ob_start()還可以有參數,參數就是一個回呼函數。例子如下:
代碼如下 |
複製代碼 |
< ? php function callback($buffer) { // replace all the apples with oranges return (str_replace("apples", "oranges", $buffer)); } ob_start("callback"); ? > < html > < body >
It's like comparing apples to oranges. < / body > < / html > < ?php ob_end_flush(); ? >以上程式會輸出: < html > < body > < p>It's like comparing oranges to oranges. < / body > < / html > |
至於更多的,就去官網的手冊裡看吧。
http://www.bkjia.com/PHPjc/632725.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632725.htmlTechArticle頁面緩衝就是把頁面儲存到一個檔案中,下次讀出時直接調用檔案而不查詢資料庫,這裡我們介紹利用ob_start()來實現。 例 代碼如下 複製代...