(1) 静态 缓存 这里技术的本质是我们将我们所需要的一些数据临时存在服务器的一些文件中。 ?php class File { private $_dir ; const EXT= 'php' ; public function __construct () { $this -_dir=dirname( __FILE__ ). '/files/' ; } public function cache
(1)静态缓存
这里技术的本质是我们将我们所需要的一些数据临时存在服务器的一些文件中。
<code><span><span><?php </span> <span><span>class</span> <span>File</span> {</span> <span>private</span> <span>$_dir</span>; <span>const</span> EXT=<span>'php'</span>; <span>public</span> <span><span>function</span> <span>__construct</span><span>()</span> {</span> <span>$this</span>->_dir=dirname(<span>__FILE__</span>).<span>'/files/'</span>; } <span>public</span> <span><span>function</span> <span>cacheDate</span><span>(<span>$key</span>,<span>$value</span>=<span>''</span>,<span>$path</span>=<span>''</span>)</span> {</span> <span>$filename</span>=<span>$this</span>->_dir.<span>$path</span>.<span>$key</span>.<span>self</span>::EXT; <span>//将value值写入<strong>缓存</strong></span> <span>if</span>(<span>$value</span>!==<span>''</span>) { <span>//如果value值为null</span> <span>if</span>(is_null(<span>$value</span>)) { <span>return</span> unlink(<span>$filename</span>); } <span>$dir</span>=dirname(<span>$filename</span>); <span>if</span>(!is_dir(<span>$dir</span>)) { mkdir(<span>$dir</span>,<span>0777</span>); } <span>return</span> file_put_contents(<span>$filename</span>,json_encode(<span>$value</span>)); } <span>if</span>(!is_file(<span>$filename</span>)) { <span>return</span> <span>FALSE</span>; } <span>else</span> { <span>return</span> json_decode(file_get_contents(<span>$filename</span>),<span>true</span>); } } }</span></span></code>
这里封装了一个类,下面是测试代码
<code><span><span><?php </span> <span>require_once</span> <span>'./File.php'</span>; <span>$data</span>=<span>array</span>( <span>'id'</span>=><span>1</span>, <span>'name'</span>=><span>'singwa'</span>, <span>'type'</span>=><span>array</span>(<span>4</span>,<span>5</span>,<span>6</span>), <span>'test'</span>=><span>array</span>(<span>1</span>,<span>45</span>,<span>67</span>=><span>array</span>(<span>123</span>,<span>'tsysa'</span>)), ); <span>$file</span>=<span>new</span> File(); <span>//增加<strong>缓存</strong>的方式 这样会将指定的数据放入指定文件夹中</span> <span>if</span>(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>),<span>$data</span>) { var_dump(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>)); <span>echo</span> <span>"success"</span>; } <span>else</span> { <span>echo</span> <span>"error"</span>; } <span>//取出<strong>缓存</strong>的方式</span> <span>if</span>(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>)) { var_dump(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>)); <span>echo</span> <span>"success"</span>; } <span>else</span> { <span>echo</span> <span>"error"</span>; } <span>//删除<strong>缓存</strong>的方式</span> <span>if</span>(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>),<span>$value</span>=<span>null</span>) { var_dump(<span>$file</span>->cacheDate(<span>'index_mk_cache'</span>)); <span>echo</span> <span>"success"</span>; } <span>else</span> { <span>echo</span> <span>"error"</span>; }</span></span></code>