PHP开发生成API接口数据格式(json和xml)实例
以下提供一个php开发的API提供json格式和xml格式数据的接口代码,具体如下:
/** * 生成接口数据格式 */ class Response{ /** * [show 按综合方式输出数据] * @param [int] $code [状态码] * @param [string] $message [提示信息] * @param array $data [数据] * @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方式输出数据] * @param [int] $code [状态码] * @param [string] $message [提示信息] * @param [array] $data [数据] * @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格式生成数据] * @param [int] $code [状态码] * @param [string] $message [提示信息] * @param array $data [数据] * @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; } } //测试 $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);
//用下面的方式输出json数据存取方便实用: <?php //服务端 app.php //php中用数组表示JSON格式数据 header("Content-type:text/html;charset=utf-8"); $arr = array( 'code' => 200, 'msg' => '数据返回成功', 'date' =>array( '0' => array( 'email' =>'999@qq.com', 'website' =>'http://www.xxxx.com', ), '1' => array( 'email' =>'999@qq.com', 'website' =>'http://www.xxxx.cn', ), '2' => array( 'email' =>'xxxx@126.com', 'website' =>'http://www.xxxxx.com', ), ), ); echo json_encode($arr); //将数组封闭成JSON数据 主要函数json_encode; ?> <?php //客户端list.php header("Content-type:text/html;charset=utf-8"); $url = "http://localhost/syphp/app.php"; //URL取绝对路径 $tranlatestr = file_get_contents($url); //获得URL文档 file_get_contents $bb = json_decode($tranlatestr); //将JSON数据转换成数组 echo $bb->date[1]->website; //取得数组内容字段 ?>