php xml和json数据产生接口
<span style="font-size:18px;">/** * 返回结果集 * * @param mixed $info 返回的有效数据集或是错误说明 * @param string $msg 为空或是错误类型代号 * @param string $result 请求成功或是失败的标识 * @param int $post 1为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-8 if ($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 $doc xml实例句柄 * @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=''; _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.=''; $xml.=_array2xml($v,$xml); $xml.=''.$k.'>'; } } }elseif(is_numeric($data)){ $xml.=$data; }elseif(is_string($data)){ $xml.=''; }}</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数据

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。
