PHP缓存

Posted 业务高于技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP缓存相关的知识,希望对你有一定的参考价值。

 

php缓存的方法有很多,最简单的缓存方法就是使用框架。

先说一下smarty的方法:

首先设置缓存文件位置:

1
$filename = "../cache/huancun.html"; //缓存文件存放的位置

设置缓存间隔:

1
$time = 10; //缓存有效期10秒

判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在重新缓存:

1
2
3
4
5
6
7
8
9
10
11
if(file_exists($filename) && ((filemtime($filename)+$time)>= time()) )
{
    //直接调用缓存
    include($filename);
}
else
{
    //重新缓存
    ob_start(); //开启内存缓存
     
    代码部分。。。。。。。<br>     <br><br>     $smarty->display("huancun.html"); 

              $str = ob_get_contents(); //获取内存中的缓存内容
              file_put_contents($filename,$str);

1
2
3
    ob_flush(); //关闭内存缓存
     
}

 如果要使用分页缓存的话需要修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$p = 1;
if(!empty($_GET["page"]))
{
    $p = $_GET["page"];
}
 
$filename = "../cache/huancun{$p}.html"; //缓存文件存放的位置
 
$time = 10; //缓存有效期10秒
 
 
 
//判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在重新缓存
if(file_exists($filename) && ((filemtime($filename)+$time)>= time()) )
{
    //直接调用缓存
    include($filename);
}
else
{
    //重新缓存
    ob_start(); //开启内存缓存
     
    分页代码。。。。。。。。。
 
 
    $smarty->display("huancun.html");
     
    $str = ob_get_contents(); //获取内存中的缓存内容
    file_put_contents($filename,$str);
     
    ob_flush(); //关闭内存缓存
     
}

 同理,如果没有使用smarty模板。只要将ob_start()与ob_flush()之间的代码修改为普通php代码即可。

以上是关于PHP缓存的主要内容,如果未能解决你的问题,请参考以下文章

超级有用的9个PHP代码片段

PHP必用代码片段

PHP代码-psysh调试代码片段工具

超实用的php代码片段

比较有用的php代码片段

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题