php ob_start()函數實現當前頁面內容緩衝輸出_PHP教程

來源:互聯網
上載者:User
頁面緩衝就是把頁面儲存到一個檔案中,下次讀出時直接調用檔案而不查詢資料庫,這裡我們介紹利用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()來實現。 例 代碼如下 複製代...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.