<?php
class
XZCache{
var
$cache_time
= 3600;
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) {
$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
;
}
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
{
$result
[
'value'
] = unserialize(
file_get_contents
(
$cache_file
));
$result
[
'cached'
] = 1;
}
}
else
{
echo
"Error:no cache"
;
$result
[
'cached'
] = 0;
}
return
$result
;
}
}