API就是作業系統留給應用程式的一個調用介面,應用程式通過叫用作業系統的 API 而使作業系統去執行應用程式的命令(動作)。本文主要和大家分享PHP關於API介面執行個體,希望能協助到大家。
PHP產生JSON資料
json_encode($value) 方法
(response.php和testapi.php)
通訊標準格式:
code 狀態代碼 message 提示資訊 data返回資料
json如何封裝通訊資料方法
Response類
<?phpclassResponse{/***按json方式輸出通訊資料*@param integer $code 狀態代碼*@param string $message 提示資訊*@param array $data 資料*return string*/publicstaticfunction json($code,$message='',$data=array()){if(!is_numeric($code)){return'';}$result=array('code'=>$code,'message'=>$message,'data'=>$data);echo json_encode($result);exit;}}
執行個體使用
<?phprequire_once('./apitest.php');$arr=array('id'=>1,'name'=>'huwei',);Response::json(200,'資料返回成功',$arr);
PHP產生XML資料
1.組裝字串
2.使用系統類別
DomDocument
XMLWriter
SimpleXML
封裝XML通訊介面
封裝方法
/***按XML方式輸出通訊資料*@param integer $code 狀態代碼*@param string $message 提示資訊*@param array $data 資料*return string*/publicstaticfunction xml($code,$message='',$data=array()){if(!is_numeric($code)){return'';}$result=array('code'=>$code,'message'=>$message,'data'=>$data);header("Content-Type:text/xml");//將頭資訊轉換為XML格式$xml="<?xml version='1.0' encoding='UTF-8'?>\n";$xml.="<root>\n";$xml.=self::xmlToEncode($result);$xml.="</root>";return $xml;}publicstaticfunction xmlToEncode($data){$xml=$attr="";foreach($data as $k=>$v){if(is_numeric($k)){$attr=" id='{$k}'";$k="item";}$xml.="<{$k}{$attr}>";$xml.=is_array($v)?self::xmlToEncode($v):$v;$xml.="</{$k}>";}return $xml;}實現:<?phprequire_once('./apitest.php');$arr=array('id'=>1,'name'=>'huwei','type'=>array(1,2,3));//echo Response::json(200,'資料返回成功',$arr);echo Response::xml(200,'資料返回成功',$arr);綜合通訊方法封裝 封裝方法const JSON="json";/***按綜合方式輸出通訊資料*@param integer $code 狀態代碼*@param string $message 提示資訊*@param array $data 資料*@param string $type 類型*return string*/publicstaticfunction show($code,$message='',$data=array(),$type==self::JSON){if(!is_numeric($code)){return'';}$result=array('code'=>$code,'message'=>$message,'data'=>$data,);if($type=='json'){returnself::json($code,$message,$data);}elseif($type=='array'){var_dump($result);}elseif($type=='xml'){returnself::xml($code,$message,$data);}else{//TODO}}調用方式:<?phprequire_once('./apitest.php');$arr=array('id'=>1,'name'=>'huwei','type'=>array(1,2,3));//echo Response::json(200,'資料返回成功',$arr);//echo Response::xml(200,'資料返回成功',$arr);echo Response::show(200,'資料返回成功',$arr,'array');
緩衝技術:
1.靜態緩衝
儲存在磁碟上的靜態檔案,用PHP產生的資料放入靜態快取檔案中
PHP操作緩衝(file.php)
產生緩衝、擷取緩衝、刪除緩衝
封裝類
<?phpclassFile{private $_dir;// 檔案路徑const EXT='.txt';//檔案尾碼publicfunction __construct(){$this->_dir=dirname(__FILE__).'\files\/';//擷取該項目同級目錄}publicfunction cacheData($key,$value='',$path=''){$filename=$this->_dir.$path.$key.self::EXT;if($value!==''){//將value值寫入緩衝if(is_null($value)){return@unlink($filename);}$dir=dirname($filename);if(!is_dir($dir)){mkdir($dir,0777);}return file_put_contents($filename,json_encode($value));//若成功返回位元組數,不然為false}if(!is_file($filename)){returnFalse;}else{return json_decode(file_get_contents($filename),true);}}}調用類<?php//require_once('./apitest.php');require_once('./file.php');$arr=array('id'=>1,'name'=>'huwei','type'=>array(1,2,3));//echo Response::json(200,'資料返回成功',$arr);//echo Response::xml(200,'資料返回成功',$arr);//echo Response::show(200,'資料返回成功',$arr,'array');$file=newFile();//echo $file->cacheData('index_cache',$arr); //寫入操作//var_dump($file->cacheData('index_cache')); //讀取操作echo $file->cacheData('index_cache',null);//刪除操作 2.Memcache,redis
設定快取作業
擷取快取作業
刪除快取作業
1.Memcache和Redis都是用來管理資料的
2.他們資料都是存放在記憶體上的
3.Redis可以定期將資料備份到磁碟(持久化)
4.Memchache只是簡單的key/value緩衝
5.Redis不僅僅支援簡單的k/v類型的資料,同時還提供list、set、hash等資料結構的儲存