Heim >php教程 >php手册 >php开发安卓服务器之 使用创建动态缓存

php开发安卓服务器之 使用创建动态缓存

WBOY
WBOYOriginal
2016-06-13 09:18:411020Durchsuche

php开发安卓服务器之 使用创建动态缓存

为什么要有缓存:减少数据库服务器压力。
一.静态缓存:
保存在服务器磁盘的静态文件,用php生成数据放在静态文件中
php操作缓存:
1.生成缓存
2.获取缓存

3.删除缓存


生成缓存文件:


file.php操作静态缓存的类

<?php

class File {//操作静态缓存的业务
	private $_dir;

	const EXT = &#39;.txt&#39;;

	public function __construct() {
		//获取文件当前目录,把缓存文件放到当前目录files下
		$this->_dir = dirname(__FILE__) . &#39;/files/&#39;;
	}
	//key是缓存文件文件名,value是缓存数据
	public function cacheData($key, $value = &#39;&#39;, $path=&#39;&#39;) {
		$filename = $this->_dir . $path . $key . self::EXT;

		if($value !== &#39;&#39;) { // 将value值写入缓存
			 
			 //获取目录,判断如果目录不存在,创建目录
			$dir = dirname($filename);
			if(!is_dir($dir)) {
				mkdir($dir, 0777);//生成目录,给出权限
			}
			//第一个参数文件名,第二个数据(String),把数组vlaue转换成字符串
			return file_put_contents($filename,json_encode($value));
		}
		
	}
}

testfile.php


<?php
require_once(&#39;./file.php&#39;);
$data=array(
&#39;id&#39;=>1,
&#39;name&#39;=>&#39;david&#39;,
&#39;type&#39;=>array(4,5,6)
);
$file=new File();
if($file->cacheData(&#39;davidcache&#39;,$data)){
echo "success";}else{
echo "error";
}

如果生成成功显示success

这样就在当前文件的目录的file目录下创建了名为davidchche.txt的缓存文件。



进阶版:同时也实现缓存的读和删除


file.php

<?php

class File {//操作静态缓存的业务
	private $_dir;
	const EXT = &#39;.txt&#39;;
	public function __construct() {
		//获取文件当前目录,把缓存文件放到当前目录files下
		$this->_dir = dirname(__FILE__) . &#39;/files/&#39;;
	}
	//key是缓存文件文件名,value是缓存数据
	public function cacheData($key, $value = &#39;&#39;, $path=&#39;&#39;) {
		$filename = $this->_dir . $path . $key . self::EXT;

		if($value !== &#39;&#39;) { // 将value值写入缓存
			 
             if(is_null($value)) {//如果value值穿null则删除这个缓存文件
				return @unlink($filename);
			}
			 //获取目录,判断如果目录不存在,创建目录
			$dir = dirname($filename);
			if(!is_dir($dir)) {
				mkdir($dir, 0777);//生成目录,给出权限
			}
			//第一个参数文件名,第二个数据(String),把数组vlaue转换成字符串
			return file_put_contents($filename,json_encode($value));
		}

		if(!is_file($filename))//读取缓存文件
		{
			return FALSE;
		}else{
            return json_decode(file_get_contents($filename),true);
		}
		
	}
}

根据file类,如果value为空='',读取缓存数据,
如果value为null,删除缓存数据,
如果value不为空,也不是null,那么创建缓存数据

testfile.php


<?php
require_once(&#39;./file.php&#39;);
$data=array(
&#39;id&#39;=>1,
&#39;name&#39;=>&#39;david&#39;,
&#39;type&#39;=>array(4,5,6)
);
$file=new File();
//删除缓存文件
if($file->cacheData(&#39;davidcache&#39;,null)){
	//if($file->cacheData(&#39;davidcache&#39;)){
	//var_dump($file->cacheData(&#39;davidcache&#39;));
	//exit;
echo "success";}else{
echo "error";
}
    /*下面这个是读取缓存时使用的
	if($file->cacheData(&#39;davidcache&#39;)){
	var_dump($file->cacheData(&#39;davidcache&#39;));
	exit;
echo "success";}else{
echo "error";
}*/

/*下面这个是创建缓存调用的
if($file->cacheData(&#39;davidcache&#39;,$data)){
echo "success";}else{
echo "error";
}*/

//根据file类,如果value为空=&#39;&#39;,读取缓存数据,
//如果value为null,删除缓存数据,
//如果value不为空,也不是null,那么创建缓存数据


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