진정한 정적 캐시: (실제로 html 페이지를 생성하고 다음 작업에서 html을 직접 호출)
처음으로 캐시 파일 존재 여부 확인(웹페이지 새로 고침)(한번 설정 가능)
존재하지 않는 경우 먼저 데이터베이스에 연결하고(PDO에 따라) 데이터를 찾아 페이지에 출력하고 동시에 로컬 .html 파일에 캐시(쓰기)합니다.
캐시 파일이 존재하는지 확인하려면 다시(웹 페이지 새로 고침)
캐시 파일이 존재하는 경우 로컬 캐시(file_get_content)를 직접 검색하여 읽어옵니다
<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>
<code><span><span>fopen</span><span>()</span> 函数打开文件或者 URL。<span>fopen</span>(文件名称,文件访问类型)<span>w</span>写入方式打开。 <span>filemtime</span><span>()</span> 函数返回文件内容上次的修改时间,里面跟文件名。</span></code>