真靜態快取:(真的產生一個html頁面,在接下來的操作中直接呼叫該html)
第一次(刷新網頁)判斷是否存在快取檔案 (可設定一時間)
如果不存在 第一次是(可依PDO)連接資料庫 尋找資料 輸出到頁面 並且同時快取(寫入)到本機一個.html檔案;
再次(刷新網頁) 判斷是否存有該快取檔案時
當存在快取文件,直接尋找本地快取(file_get_content) 讀取出來
以下程式碼在ci框架中編寫完成
<code><span>$time</span> = <span>10</span>; <span>//设置缓存页面过期时间</span><span>if</span>(!is_file(<span>"obtest.html"</span>) || time()-filemtime(<span>"obtest.html"</span>)><span>$time</span>){ ob_start(); <span>//打开缓冲区 </span><span>$arr</span>[<span>'res'</span>]=<span>$this</span>->db->get(<span>'user'</span>)->result_array(); <span>$this</span>->load->view(<span>'welcome_message'</span>,<span>$arr</span>); <span>//print_r($arr);</span><span>$info</span> = ob_get_contents(); <span>//得到缓冲区的内容并且赋值给$info </span><span>$file</span> = <span>fopen</span>(<span>'obtest.html'</span>, <span>'w'</span>); <span>//打开文件info.txt </span><span>fwrite</span>(<span>$file</span>, <span>$info</span>); <span>//写入信息到info.txt </span><span>fclose</span>(<span>$file</span>); <span>//关闭文件info.txt</span> }<span>else</span>{ echo <span>"cache:"</span>; echo file_get_contents(<span>"obtest.html"</span>); } </code>
fopen 和filemtime 方法的使用:
<code><span><span>fopen</span><span>()</span> 函数打开文件或者 URL。<span>fopen</span>(文件名称,文件访问类型)<span>w</span>写入方式打开。 <span>filemtime</span><span>()</span> 函数返回文件内容上次的修改时间,里面跟文件名。</span></code>
以上就介紹了php真靜態快取 ob系統函數,包含了php,函數方面的內容,希望對PHP教學有興趣的朋友有幫助。