1.下面我說說ob的基本作用:
1)防止在瀏覽器有輸出之後再使用setcookie()、header()或session_start()等傳送標頭檔案的函式造成的錯誤。其實這樣的用法少用為好,養成良好的**習慣。靜態化的實現方式2)捕捉對一些不可獲取的函式的輸出,比如phpinfo()會輸出一大堆的html,但是我們無法用乙個變數例如$info=phpinfo();來捕捉,這時候ob就管用了。
3)對輸出的內容進行處理,例如進行gzip壓縮,例如進行簡繁轉換,例如進行一些字串替換。
4)生成靜態檔案,其實就是捕捉整頁的輸出,然後存成檔案。經常在生成html,或者整頁快取中使用。
利用ob系列的函式
ob_start(); 開啟輸出控制緩衝
ob_get_contents(); 返回輸出緩衝區內容
ob_clean(); 清空輸出緩衝區
ob_end_flush(); 沖刷出(送出)輸出緩衝區內容並關閉緩衝
ob_start();
輸出到頁面的html**....
......
ob_get_contents();
ob_end_flush();
fopen()寫入
3.利用ob系列的函式
可以判斷檔案的inode修改時間,判斷是否過期
使用filectime函式
<?php
$id = $_get['id'];
if (empty($id))
$cache_name = md5(__file__). '-' .$id. '.html';
$cache_lifetime = 3600;
//filectime(__file__)> filectime($cache_name) 判斷檔案是否已經修改
if ( filectime(__file__)> filectime($cache_name) && file_exists($cache_name) &&( filectime($cache_name) + $cache_lifetime > time()))
ob_start();
?>this is my script<?php
$content = ob_get_contents();
ob_end_flush();
$handle = fopen($cache_name, "w');
fwrite($handle, $content);
fclose($handle);
?>
ob 函式的使用
ob 函式的使用 1.頁面靜態化 id isset get id get id 0 0 filename html date ymd news id id.html if file exists html date ymd echo filename if file exists filename ...
PHP常見的ob系列函式
1 ob start 開啟緩衝區,所有輸出的資訊不直接傳送到瀏覽器,而是儲存在緩衝區裡面 2 ob clean 刪除內部緩衝區的內容,不關閉緩衝區 不輸出 3 ob end clean 刪除內部緩衝區的內容,關閉緩衝區 不輸出 4 ob get clean 返回內部緩衝區的內容,關閉緩衝區。相當於執...
OB函式echo的底層解釋
ob 系列的函式,其實本質就是對輸出的內容進行獲取處理。程式中有些內容,比如伺服器的資訊可以直接輸出 phpinfo 但是如果想儲存起來,就必須開啟緩衝區獲取。特別是靜態化的模板,需要對模板進行正則的各種處理,現在用的不多了,因為基本上前後端分離了。另外看起來很簡單的echo,這個是php的特殊結構...