时间:2021-07-01 10:21:17 帮助过:4人阅读
php以json或者xml 形式返回给app。明白这点就很好说了,就是把数据包装成json或者xml,返回给APP
定义抽象APP基类:
输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ public static function xmlEncode($code, $message, $data = array()) { if(!is_numeric($code)) { return ''; } $result = array( 'code' => $code, 'message' => $message, 'data' => $data, ); header("Content-Type:text/xml"); $xml = "\n"; $xml .= "
以xml形式返回给APP:$code, 'message' => $message, 'data' => $data ); header('Content-Type:text/xml'); $xml = "\n"; $xml .= ""; $xml .= self::xmlToEncode($result); $xml .= " "; echo $xml; } public static function xmlToEncode($result) { $xml = $attr = ''; foreach($result as $key => $value) { //判断键值对,如果是数字键值不允许 if(is_numeric($key)) { $attr = " id='" . $key . "'"; $key = "item"; } $xml .= "<{$key}{$attr}>"; //以递归形式返回,主要是因为数组在xml中显示是array,必须显示出来具体键值对 $xml .= is_array($value) ? self::xmlToEncode($value) : $value; $xml .= "{$key}>\n"; } return $xml; }}
以json格式返回数据:输出通信数据*/class Json extends Api { public function response($code, $message = '', $data = array()) { if(!(is_numeric($code))) { return ''; } $result = array( 'code' => $code, 'message' => $message, 'data' => $data ); echo json_encode($result); exit; }}
也可以采用这种方式组装返回数据:输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @param string $type 数据类型 * return string */ public static function show($code, $message = '', $data = array(), $type = self::JSON) { if(!is_numeric($code)) { return ''; } $type = isset($_GET['format']) ? $_GET['format'] : self::JSON; $result = array( 'code' => $code, 'message' => $message, 'data' => $data, ); if($type == 'json') { self::json($code, $message, $data); exit; } elseif($type == 'array') { //适合调试代码 var_dump($result); } elseif($type == 'xml') { self::xmlEncode($code, $message, $data); exit; } else { // TODO } } /** * 按json方式输出通信数据 * @param integer $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; } /** * 按xml方式