When making data interfaces, we usually need to obtain third-party data interfaces or provide data interfaces to third parties, and these data formats It is usually transmitted in XML or JSON format. This article will introduce how to use PHP to generate XML format data for third-party calls and how to obtain XML data provided by third parties.
PHP generates interface communication data
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
/** * Generate interface data format */ class Response{ /** * [show output data in comprehensive mode] * @param [int] $code [status code] * @param [string] $message [prompt message] * @param array $data [data] * @param [string] $type [type] * @return [string] [return value] */ 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 output data in json mode] * @param [int] $code [status code] * @param [string] $message [prompt message] * @param [array] $data [data] * @return [string] [return value] */ 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 generates data in xml format] * @param [int] $code [status code] * @param [string] $message [prompt message] * @param array $data [data] * @return [string] [return value] */ 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 = "n"; $xml .= " $xml .= self::xmlToEncode($data); $xml .= ""; 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); |
以上所述就是本文的全部内容了,希望大家能够喜欢。