首页 > 后端开发 > php教程 > php文件缓存类的定义及功能

php文件缓存类的定义及功能

墨辰丷
发布: 2023-03-31 15:04:02
原创
1467 人浏览过

这篇文章主要介绍了php文件缓存类用法,以实例形式较为详细的分析了php文件缓存类的定义、功能及具体使用技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php文件缓存类用法。具体如下:

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

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

<?php

/**

 * 简单的文件缓存类

 *

 */

class XZCache{

 // default cache time one hour

 var $cache_time = 3600;

 // default cache dir

 var $cache_dir = &#39;./cache&#39;;

 public function __construct($cache_dir=null, $cache_time=null){

  $this->cache_dir = isset($cache_dir) ? $cache_dir : $this->cache_dir;

  $this->cache_time = isset($cache_time) ? $cache_time : $this->cache_time;

 }

 public function saveCache ($key, $value){

  if (is_dir($this->cache_dir)){

   $cache_file = $this->cache_dir . &#39;/xzcache_&#39; . md5($key);

   $timedif = @(time() - filemtime($cache_file));

   if ($timedif >= $this->cache_time) {

    // cached file is too old, create new

    $serialized = serialize($value);

    if ($f = @fopen($cache_file, &#39;w&#39;)) {

     fwrite ($f, $serialized, strlen($serialized));

     fclose($f);

    }

   }

   $result = 1;

  }else{

   echo "Error:dir is not exist.";

   $result = 0;

  }

  return $result;

 }

 /**

  * @return array

  *   0 no cache

  *    1 cached

  *    2 overdue

  */

 public function getCache ($key) {

  $cache_file = $this->cache_dir . &#39;/xzcache_&#39; . md5($key);

  if (is_dir($this->cache_dir) && is_file($cache_file)) {

   $timedif = @(time() - filemtime($cache_file));

   if ($timedif >= $this->cache_time) {

    $result[&#39;cached&#39;] = 2;

   }else{

    // cached file is fresh enough, return cached array

    $result[&#39;value&#39;] = unserialize(file_get_contents($cache_file));

    $result[&#39;cached&#39;] = 1;

   }

  }else {

   echo "Error:no cache";

   $result[&#39;cached&#39;] = 0;

  }

  return $result;

 }

} //end of class

登录后复制

用法示例如下:

1

2

3

4

5

6

$cache = new XZCache();

$key = &#39;global&#39;;

$value = $GLOBALS;

$cache->saveCache($key, $value);

$result = $cache->getCache($key);

var_dump($result);

登录后复制

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

简述PHP中提供的魔术方法

php大规模数据提交的方法

PHP中foreach()的使用方法

以上是php文件缓存类的定义及功能的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板