PHP生成json和xml類型接口數(shù)據(jù)格式
更新時(shí)間:2015年05月17日 10:16:07 投稿:hebedich
在做數(shù)據(jù)接口時(shí),我們通常要獲取第三方數(shù)據(jù)接口或者給第三方提供數(shù)據(jù)接口,而這些數(shù)據(jù)格式通常是以XML或者JSON格式傳輸,本文將介紹如何使用PHP生成XML格式數(shù)據(jù)供第三方調(diào)用以及如何獲取第三方提供的XML數(shù)據(jù)。
php生成接口通信數(shù)據(jù)
/**
* 生成接口數(shù)據(jù)格式
*/
class Response{
/**
* [show 按綜合方式輸出數(shù)據(jù)]
* @param [int] $code [狀態(tài)碼]
* @param [string] $message [提示信息]
* @param array $data [數(shù)據(jù)]
* @param [string] $type [類型]
* @return [string] [返回值]
*/
public static function show($code, $message, $data = array(),$type = ''){
if(!is_numeric($code)){
return '';
}
$result = array(
'code' => $code,
'message' => $message,
'data' => $data
);
if($type == 'json'){
return self::json($code, $message, $data);
}elseif($type == 'xml'){
return self::xml($code, $message, $data);
}else{
//TODO
}
}
/**
* [json 按json方式輸出數(shù)據(jù)]
* @param [int] $code [狀態(tài)碼]
* @param [string] $message [提示信息]
* @param [array] $data [數(shù)據(jù)]
* @return [string] [返回值]
*/
public static function json($code, $message, $data = array()){
if(!is_numeric($code)){
return '';
}
$result = array(
'code' => $code,
'message' => $message,
'data' => $data
);
$result = json_encode($result);
return $result;
}
/**
* [xml 按xml格式生成數(shù)據(jù)]
* @param [int] $code [狀態(tài)碼]
* @param [string] $message [提示信息]
* @param array $data [數(shù)據(jù)]
* @return [string] [返回值]
*/
public static function 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 version='1.0' encoding='UTF-8'?>\n";
$xml .= "<root>\n";
$xml .= self::xmlToEncode($data);
$xml .= "</root>";
return $xml;
}
public static function xmlToEncode($data){
$xml = '';
foreach($data as $key => $value){
if(is_numeric($key)){
$attr = "id='{$key}'";
$key = "item";
}
$xml .= "<{$key} {$attr}>\n";
$xml .= is_array($value) ? self::xmlToEncode($value) : "{$value}\n";
$xml .= "</{$key}>\n";
}
return $xml;
}
}
//測(cè)試
$grade = array("score" => array(70, 95, 70.0, 60, "70"), "name" => array("Zhang San", "Li Si", "Wang Wu", "Zhao Liu", "TianQi"));
$response = new Response();
$result = $response :: show(200,'success',$grade,'json');
print_r($result);
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
詳解如何實(shí)現(xiàn)Laravel的服務(wù)容器的方法示例
這篇文章主要介紹了詳解如何實(shí)現(xiàn)Laravel的服務(wù)容器的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
生成唯一ID的應(yīng)用場(chǎng)景非常普遍,如臨時(shí)緩存文件名稱,臨時(shí)變量,臨時(shí)安全碼等,uniqid()函數(shù)基于以微秒計(jì)的當(dāng)前時(shí)間,生成一個(gè)唯一的 ID。由于生成唯一ID與微秒時(shí)間關(guān)聯(lián),因此ID的唯一性非??煽?/div> 2015-11-11
PHP編譯configure時(shí)常見錯(cuò)誤的總結(jié)
這篇文章主要介紹了PHP編譯configure時(shí)常見錯(cuò)誤的總結(jié)的相關(guān)資料,本文總結(jié)了一些常見的configure錯(cuò)誤信息和解決這些錯(cuò)誤的經(jīng)驗(yàn),需要的朋友可以參考下2017-08-08
laravel返回統(tǒng)一格式錯(cuò)誤碼問(wèn)題
在使用yii和laravel的過(guò)程中,兩個(gè)框架對(duì)web-api都非常友好,也都對(duì)restful做了不同程度的支持,但是還是遇到了一些問(wèn)題,下面以laravel6.4為例,簡(jiǎn)單描述下我遇到的問(wèn)題,需要的朋友參考下吧2019-11-11
PHP使用遞歸按層級(jí)查找數(shù)據(jù)的方法
這篇文章主要介紹了PHP使用遞歸按層級(jí)查找數(shù)據(jù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
PHP下載遠(yuǎn)程圖片并保存到本地方法總結(jié)
這篇文章主要介紹了PHP下載遠(yuǎn)程圖片并保存到本地方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2016-01-01
codeigniter集成ucenter1.6雙向通信的解決辦法
用codeigniter開發(fā)一個(gè)子網(wǎng)站,之后想和原來(lái)的論壇進(jìn)行同步,包括同步登陸和雙向通信。這篇文章主要介紹了codeigniter集成ucenter1.6雙向通信的解決辦法,需要的朋友可以參考下2014-06-06最新評(píng)論

