標籤:ar io 使用 sp on 檔案 資料 bs cti
為什麼要有緩衝:減少資料庫伺服器壓力。
一.靜態緩衝:
儲存在伺服器磁碟的靜態檔案,用php產生資料放在靜態檔案中
php操作緩衝:
1.產生緩衝
2.擷取緩衝
3.刪除緩衝
產生快取檔案:
file.php操作靜態緩衝的類
<?phpclass File {//操作靜態緩衝的業務private $_dir;const EXT = '.txt';public function __construct() {//擷取檔案目前的目錄,把快取檔案放到目前的目錄files下$this->_dir = dirname(__FILE__) . '/files/';}//key是快取檔案檔案名稱,value是快取資料public function cacheData($key, $value = '', $path='') {$filename = $this->_dir . $path . $key . self::EXT;if($value !== '') { // 將value值寫入緩衝 //擷取目錄,判斷如果目錄不存在,建立目錄$dir = dirname($filename);if(!is_dir($dir)) {mkdir($dir, 0777);//組建目錄,給出許可權}//第一個參數檔案名稱,第二個資料(String),把數組vlaue轉換成字串return file_put_contents($filename,json_encode($value));}}}
testfile.php
<?phprequire_once('./file.php');$data=array('id'=>1,'name'=>'david','type'=>array(4,5,6));$file=new File();if($file->cacheData('davidcache',$data)){echo "success";}else{echo "error";}
如果產生成功顯示success
這樣就在當前檔案的目錄的file目錄下建立了名為davidchche.txt的快取檔案。
進階版:同時也實現緩衝的讀和刪除
file.php
<?phpclass File {//操作靜態緩衝的業務private $_dir;const EXT = '.txt';public function __construct() {//擷取檔案目前的目錄,把快取檔案放到目前的目錄files下$this->_dir = dirname(__FILE__) . '/files/';}//key是快取檔案檔案名稱,value是快取資料public function cacheData($key, $value = '', $path='') {$filename = $this->_dir . $path . $key . self::EXT;if($value !== '') { // 將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
<?phprequire_once('./file.php');$data=array('id'=>1,'name'=>'david','type'=>array(4,5,6));$file=new File();//刪除快取檔案if($file->cacheData('davidcache',null)){//if($file->cacheData('davidcache')){//var_dump($file->cacheData('davidcache'));//exit;echo "success";}else{echo "error";} /*下面這個是讀取緩衝時使用的if($file->cacheData('davidcache')){var_dump($file->cacheData('davidcache'));exit;echo "success";}else{echo "error";}*//*下面這個是建立緩衝調用的if($file->cacheData('davidcache',$data)){echo "success";}else{echo "error";}*///根據file類,如果value為空白='',讀取快取資料,//如果value為null,刪除快取資料,//如果value不為空白,也不是null,那麼建立快取資料
php開發安卓伺服器之 使用建立動態緩衝