php xml和json数据产生接口

<span style="font-size:18px;">/** * 返回结果集 * * @param mixed$info返回的有效数据集或是错误说明 * @param string$msg为空或是错误类型代号 * @param string$result请求成功或是失败的标识 * @param int$post1为xml方式,2为json方式 * */function getData($info, $msg = '', $post, $result = 'success'){/* 分为xml和json两种方式 */$data_arr = array('result'=>$result, 'msg'=>$msg, 'info'=>$info);$data_arr = to_utf8_iconv($data_arr); //确保传递的编码为UTF-8if ($post == 1){/* xml方式 */if (class_exists('DOMDocument')){$doc=new DOMDocument('1.0','UTF-8');$doc->formatOutput=true;$shopex=$doc->createElement('kewin');$doc->appendChild($shopex);$result=$doc->createElement('result');$shopex->appendChild($result);$result->appendChild($doc->createCDATASection($data_arr['result']));$msg=$doc->createElement('msg');$shopex->appendChild($msg);$msg->appendChild($doc->createCDATASection($data_arr['msg']));$info=$doc->createElement('info');$shopex->appendChild($info);create_tree($doc, $info, $data_arr['info']);die($doc->saveXML());}die('<?xml version="1.0" encoding="UTF-8"?>' . array2xml($data_arr)) ;}else{/* json方式 */$json = new JSON;die($json->encode($data_arr)); //把生成的返回字符串打印出来}}/** * 循环生成xml节点 * * @param handle$docxml实例句柄 * @param handle$top当前父节点 * @param array$info_arr需要解析的数组 * @param boolean$have_item是否是数据数组,,是则需要在每条数据上加item父节点 * */function create_tree($doc, $top, $info_arr, $have_item = false){if (is_array($info_arr)){foreach ($info_arr as $key => $val){if (is_array($val)){if ($have_item == false){$data_info=$doc->createElement('data_info');$top->appendChild($data_info);create_tree($doc, $data_info, $val, true);}else{$item=$doc->createElement('item');$top->appendChild($item);$key_code = $doc->createAttribute('key');$item->appendChild($key_code);$key_code->appendChild($doc->createTextNode($key));create_tree($doc, $item, $val);}}else{$text_code=$doc->createElement($key);$top->appendChild($text_code);if (is_string($val)){$text_code->appendChild($doc->createCDATASection($val));}else{$text_code->appendChild($doc->createTextNode($val));}}}}else{$top->appendChild($doc->createCDATASection($info_arr));}}function array2xml($data,$root='shopex'){$xml='<'.$root.'>';_array2xml($data,$xml);$xml.='</'.$root.'>';return $xml;}function _array2xml(&$data,&$xml){if(is_array($data)){foreach($data as $k=>$v){if(is_numeric($k)){$xml.='<item key="' . $k . '">';$xml.=_array2xml($v,$xml);$xml.='</item>';}else{$xml.='<'.$k.'>';$xml.=_array2xml($v,$xml);$xml.='</'.$k.'>';}}}elseif(is_numeric($data)){$xml.=$data;}elseif(is_string($data)){$xml.='<![CDATA['.$data.']]>';}}</span>

调用方法getData()传入不同的参数可分别生成xml数据或json格式数据

getData($data, ”, ‘json’); //返回json数据

{"result":"success","msg":"","info":{"data_info":[{"goods_id":"1","last_modify":"1423937979"},{"goods_id":"2","last_modify":"1425595831"},{"goods_id":"3","last_modify":"1423937959"},{"goods_id":"4","last_modify":"1423942862"}],"counts":"4"}}

getData($data, ”, ‘xml’); //返回xml数据

<?xml version="1.0" encoding="UTF-8"?><kewin> <result><![CDATA[success]]></result> <msg><![CDATA[]]></msg> <info> <data_info> <item key="0"> <goods_id><![CDATA[1]]></goods_id> <last_modify><![CDATA[1423937979]]></last_modify> </item> <item key="1"> <goods_id><![CDATA[2]]></goods_id> <last_modify><![CDATA[1425595831]]></last_modify> </item> <item key="2"> <goods_id><![CDATA[3]]></goods_id> <last_modify><![CDATA[1423937959]]></last_modify> </item> <item key="3"> <goods_id><![CDATA[4]]></goods_id> <last_modify><![CDATA[1423942862]]></last_modify> </item> </data_info> <counts><![CDATA[4]]></counts> </info></kewin>

无论才能知识多么卓着,如果缺乏热情,则无异纸上画饼充饥,无补于事。

php xml和json数据产生接口

相关文章:

你感兴趣的文章:

标签云: