通信数据的标准格式:
code 状态码(200,400等);
message 提示信息(登录失败,数据返回成功等);
data 返回数据;
1、json 方式封装通信接口
方法:json_encode($value);
注:该函数只能接受utf-8编码的数据;如果传递其他格式的数据该函数会返回null;
<?php class Response { /** * 按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, ); echo json_encode($result); exit; } } ?>
2、xml的方式封装通信接口
方法:php生成xml数据;
首先php如何生成xml数据,总结有两种方法:
1.组装成xml字符串;
2.使用系统类(DomDocument、XMLWriter、SimpleXML);
<?php class Response { /** * 按xml方式输出通信数据 * @param int $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @return void */ public static function xmlEncode($code,$message='',$data=array()) { $r = ''; if(!is_numeric($code)) $r = ''; $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($result); $xml .= "</root>"; $r = $xml; echo $r; } public static function xmlToEncode($data) { $xml = $attr = ""; foreach($data as $key=>$value) { if(is_numeric($key)) { $attr = "id='{$key}'"; $key = 'item'; } $xml .= "<{$key} {$attr}>"; $xml .= is_array($value)?self::xmlToEncode($value):$value; $xml .= "</{$key}>\n"; } return $xml; } } ?>