在這裡,我們透過一個程式碼範例進一步了解PHP本身的快取機制,在未來的學習中,也會對快取這個概念有一個大致的了解。
使用php本身的快取機制
如果要測試php自己的快取機制, 需要設定php.ini 檔案
display_errors=On output_buffering=Off error_reporting= 设置错误级别
兩個緩衝區:outputbuffer與程式快取
ob快取關閉以後就放到程式緩存,程式快取必須放到header後面,否則報錯
函數:
ob_start(); //开启缓存 ob_clean(); //清空 outputbuffer的内容 ob_end_clean(); //关闭ob缓存,同时清空 ob_flush(); //输出ob内容,并清空,但不关闭 ob_end_flush(); //把ob缓存的内容输出,并关闭ob ob_get_contents(); //获取output_buffering的内容
測試題:
<?php ob_start(); echo "abc"; header("content-type:text/html;charset=utf-8"); echo "hello"; ob_clean(); echo "aa"; header("content-type:text/html;charset=utf-8"); ?>
輸出:aa
不錯誤
沒有關閉,aa放入ob
<?php ob_start(); echo "abc"; header("content-type:text/html;charset=utf-8"); echo "hello"; ob_end_clean(); echo "aa"; header("content-type:text/html;charset=utf-8"); ?>
輸出:aa
報錯
#aa放入的是程式快取
<?php ob_start(); echo "abc"; header("content-type:text/html;charset=utf-8"); echo "hello"; ob_flush(); echo "aa"; echo ob_get_contents(); ?>
輸出:abchelloaaaa
等待後面的一起輸出
<?php ob_start(); echo "abc"; header("content-type:text/html;charset=utf-8"); echo "hello"; ob_end_flush(); echo "aa"; echo ob_get_contents(); ?>
輸出:abchelloaaabchelloaa
最後關閉
#以上就是我整理的PHP自身的快取機制,希望今後的學習對大家有幫助。
相關文章:
PHP頁面靜態化學習筆記之三:使用PHP快取機製完成靜態化#
以上是PHP快取機制的詳細內容。更多資訊請關注PHP中文網其他相關文章!