APP 接口开发及读取静态缓存
<?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Response { /** * 综合方式 * @author zhaoyingnan 2015-10-19 11:24 * @param int $iCode 状态码 * @param string $sMsg 提示信息 * @param mix $mixData data * @param string $sType 接口返回类型 * @return string **/ static function show($iCode, $sMsg = '', $mixData = '', $sType = 'json') { if(!is_numeric($iCode)) return ''; $arData = array( 'code' => $iCode, 'message' => $sMsg, 'data' => $mixData ); switch($sType) { case 'array': echo '<pre>'; print_r($arData); echo '</pre>'; break; case 'xml': self::xml($arData); break; default: self::json($arData); } } /** * json * @author zhaoyingnan 2015-10-19 10:21 * @param array $arData * @return string **/ private function json($arData= array()) { exit(json_encode($arData)); } /** * xml * @author zhaoyingnan 2015-10-19 10:21 * @param array $arData * @return string **/ private function xml($arData = array()) { header('Content-Type:text/xml'); $sXml = ''; $sXml .= "<?xml version='1.0' encoding='UTF-8'?>\n"; $sXml .= "<root>\n"; $sXml .= self::xmlEncode($arData); $sXml .= "</root>\n"; exit($sXml); } /** * xml encode * @author zhaoyingnan 2015-10-19 11:10 * @param array $arData * @return string **/ private function xmlEncode($arData = array()) { if(!$arData) return ''; $sXml = $sAttr= ''; foreach($arData as $mKey => $mVal) { if(is_numeric($mKey)) { $sAttr = " id='{$mKey}'"; $mKey = 'item'; } $sXml .= is_array($mVal) ? self::xmlEncode($mVal) : "<{$mKey}{$sAttr}>{$mVal}</{$mKey}>"; } return $sXml; } } ?>
<?php /** * Description: 静态缓存 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class file { private $sExt = '.txt'; /** * 生成/删除/获取 缓存 * @author zhaoyingnan 2015-10-19 11:33 * @param string $sKey 文件名 * @param mix $mixValue 被缓存的数据(为''时表示获取缓存,为NUll时为删除缓存文件,否则为生成缓存) * @param string $sPath 文件保存的路径 * @param int $iCacheTime 缓存时间(秒),0为永不过期 * @return boolean **/ public function cacheData($sKey, $mixValue = '', $sPath = '/alidata/www/lianxi/file/', $iCacheTime = 0) { $sPath = rtrim($sPath, '/').'/'; $sFileName = $sPath.$sKey.$this->sExt; //生成缓存文件 if($mixValue) { if(!is_dir($sPath)) mkdir($sPath, 0777); $iCacheTime = sprintf('%011d', $iCacheTime); return file_put_contents($sFileName, $iCacheTime.json_encode($mixValue)); } if(is_file($sFileName) && !$mixValue) { if(is_null($mixValue)) { //删除缓存 return unlink($sFileName); } //获取缓存 $sContent = file_get_contents($sFileName); $iTime = intval(substr($sContent, 0, 11)); $sContent = substr($sContent, 11); if($iTime != 0 && $iTime + filemtime($sFileName) < time()) { //过期了,删除 unlink($sFileName); return FALSE; } return $sContent; } else { return FALSE; } } } ?>
<?php include 'response.php'; include 'file.php'; $_GET['format'] = isset($_GET['format']) && in_array($_GET['format'], array('xml', 'json', 'array')) ? $_GET['format'] : 'json'; $file = new File(); //删除缓存 //exit(var_dump($file->cacheData('index_cache', null))); if(!$sContent = $file->cacheData('index_cache')) { //echo "获取缓存失败\n"; //echo "获取数据\n"; $arData = array( 'id' => 1, 'name' => 'TeddyNan', 'sex' => 23, array( 'nani'=>array( 'g'=>'gg', 2, 4 ) ) ); //echo "生成缓存\n"; $file->cacheData('index_cache', $arData, '/alidata/www/lianxi/file/', 0); Response::show(0, 'success', $arData, $_GET['format']); } else { Response::show(0, 'success', json_decode($sContent, TRUE), $_GET['format']); } ?>
严正声明:本站只出售html页面效果模板,不提供任何类型的网站内容数据,模板仅供学习交流使用,不得用于任何商业以及触犯国家法律法规的用途,违者需自行承担全部责任,与本站无以及模板设计作者无关,本站以及模板作者不承担任何连带责任!!!!
关爱邦 | 网站源码程序下载_免费商业源码分享! » APP 接口开发及读取静态缓存
关爱邦 | 网站源码程序下载_免费商业源码分享! » APP 接口开发及读取静态缓存