Skip to content

Commit 07fc97c

Browse files
committed
add fcache, and test file
1 parent a8ecf04 commit 07fc97c

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

fcache.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
function fcache ($cachedir='/tmp/', $expire=100){
3+
return function ($key, $val=null, $exp=100) use ($cachedir, $expire){
4+
$timestamp = time();
5+
$name = $cachedir. $key. '-'. md5($key);
6+
$expire = $exp || $expire;
7+
if ($name && $val && $expire){
8+
@file_put_contents($name, serialize($val), LOCK_EX);
9+
@touch($name, $timestamp + $expire);
10+
return $val;
11+
}
12+
return file_exists($name) && @filemtime($name) > $timestamp
13+
&& ($data=unserialize(@file_get_contents($name))) ? $data : null;
14+
};
15+
}

test.php

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
include "fcache.php";
3+
4+
$cache = fcache('./', 1);
5+
6+
// set cache
7+
// will see file named "name-b068931cc450442b63f5b3d276ea4297" with content 's:5:"value";'
8+
$cache('name', 'value');
9+
// get cache
10+
echo $cache('name');
11+
sleep(1);
12+
// cache expire
13+
echo $cache('name') ?: "\r\ncan not get cache!";
14+
15+
16+

0 commit comments

Comments
 (0)