Maison > développement back-end > tutoriel php > php文件缓存类用法实例分析,_PHP教程

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-07-13 09:56:26
original
838 Les gens l'ont consulté

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

<&#63;php

/**

 * 简单的文件缓存类

 *

 */

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) &#63; $cache_dir : $this->cache_dir;

  $this->cache_time = isset($cache_time) &#63; $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

Copier après la connexion

用法示例如下:

1

2

3

4

5

6

$cache = new XZCache();

$key = 'global';

$value = $GLOBALS;

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

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

var_dump($result);

Copier après la connexion

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/987891.htmlTechArticlephp文件缓存类用法实例分析, 本文实例讲述了php文件缓存类用法。分享给大家供大家参考。具体如下: php/** * 简单的文件缓存类 * */class...
Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal