xml輸出錯誤
請求xml數據的時候得到這種錯誤:
我寫的Reponse.php代碼:
<?php class?Response?{ const?JSON?=?"json"; /** *?按綜合方式輸出通信數據 *?@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,JSON_UNESCAPED_UNICODE); exit; } public?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?=?"<?xml?version='1.0'?encoding='UTF-8'?>\n"; $xml?.=?"<root>"; $xml?.=?self::xmlToEncode($result); $xml?.=?"</root>"; 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?.=?is_array($value)???self::xmlToEncode($value)?:?$value; $xml?.=?"</{$key}>\n"; } return?$xml; } }
test.php代碼如下:
<?php require_once('./Response.php'); $arr?=?array( 'id'?=>?1, 'name'?=>?'singwa', 'type'?=>?array(4,5,6), 'test'?=>?array(1,45,67=>array(123,'tsysa')) ); Response::show(20,'sucess',$arr); ?>
審查元素:
貌似<?xml version='1.0' encoding='UTF-8'?>之前多了一個空格,這個怎么處理?
2015-10-13
檢查一下php標簽前后是否有空格