>백엔드 개발 >PHP 튜토리얼 >php文件缓存类用法实例分析_PHP教程

php文件缓存类用法实例分析_PHP教程

WBOY
WBOY원래의
2016-07-13 09:56:29770검색

php文件缓存类用法实例分析

   这篇文章主要介绍了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

/**

* 简单的文件缓存类

*

*/

class XZCache{

// default cache time one hour

var $cache_time = 3600;

// default cache dir

var $cache_dir = './cache';

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 . '/xzcache_' . 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, 'w')) {

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 . '/xzcache_' . md5($key);

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

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

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

$result['cached'] = 2;

}else{

// cached file is fresh enough, return cached array

$result['value'] = unserialize(file_get_contents($cache_file));

$result['cached'] = 1;

}

}else {

echo "Error:no cache";

$result['cached'] = 0;

}

return $result;

}

} //end of class

  用法示例如下:

  ?

1

2

3

4

5

6

$cache = new XZCache();

$key = 'global';

$value = $GLOBALS;

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

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

var_dump($result);

  希望本文所述对大家的php程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/987716.htmlTechArticlephp文件缓存类用法实例分析 这篇文章主要介绍了php文件缓存类用法,以实例形式较为详细的分析了php文件缓存类的定义、功能及具体使用技...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.