Heim >Backend-Entwicklung >PHP-Tutorial >php文件缓存类用法实例分析_PHP教程

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

WBOY
WBOYOriginal
2016-07-13 09:56:29770Durchsuche

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文件缓存类的定义、功能及具体使用技...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn