php中json資料和xml資料的封裝
<?php /* * 作用:將p轉換為josn格式的資料 * 備註:json_encode只接受UTF-8的編碼資料 */ //echo json_encode($arr); /* * 作用:將p3資料從p1編碼轉換為p2編碼 * p1: 原編碼 * p2: 目標編碼 * p3: 要轉換編碼的資料 */ //$newData = icov("UTF-8", "GBK", $data); /* php組裝xml串的方法 1、組裝字串 2、DomDocument 3、XMLWriter 4、SimpleXML */ class CPackData{ const JSON = "json"; /* * 按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方式輸出通訊資料 * @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 = "<?xml version='1.0' encoding='UTF-8' ?>"; $xml .= "<root>"; $xml .= self::xmlToEncode($result); $xml .= "</root>"; echo $xml; } public static function xmlToEncode($data){ $xml = $attr = ""; foreach ($data as $key => $value) { // 當key是數字時,數字是不能作為xml的節點名稱的,所以做一個轉換,即如下: // <0>4</0> --> <item id="0">4</item> // 備註:新取一個名稱為Item的節點,將key值作為item的一個id屬性值儲存 if (is_numeric($key)) { $attr = " id='{$key}'";// 注意:id前面的空格不要漏掉了,值的單引號也不要漏掉了 $key = "item"; } $xml .= "<{$key}{$attr}>"; $xml .= is_array($value) ? self::xmlToEncode($value) : $value;// 備註:如果直接寫成 $xml .= $value; 會出錯 //$xml .= $value; $xml .= "</{$key}>"; } return $xml; } /* * 按json方式輸出通訊資料 * @param integer $code 狀態碼 * @param string $message 提示資訊 * @param array $data 資料 * @param $type 封裝後的資料格式。 取值:json/xml * @return string */ public static function commonPack($code, $message = "", $data = array(), $type = self::JSON){ if (!is_numeric($code)) { return; } $type = isset($_GET["dataType"]) ? $_GET["dataType"] : self::JSON; $result = array( "code" => $code, "message" => $message, "data" => $data ); if ($type == "json") { self::json($code, $message, $data); exit; } else if ($type == "xml") { self::xmlEncode($code, $message, $data); exit; } else if ($type == "debug") { var_dump($result); } else { // TODD: 其他業務處理 } } } ?>
測試程式碼(test.php):
<?php require_once("./generate_data.php"); $arr = array( "id" => 1, "name" => "iBoost", "type" => array(4,5,6), "test" => array(1,45,67=>array(123,"test1")) ); //CPackData::json(200, "資料返回成功", $arr); //CPackData::xmlEncode(200, "success", $arr); CPackData::commonPack(200,"success", $arr, "array"); ?>
在瀏覽器中執行以上程式碼前,要先搭建好php的開發環境(此處略)
在瀏覽器中,
輸入:http://localhost/test_json.php
則列印json串
輸入:http://localhost/test_json.php?dataType=xml
則列印xml字串
輸入:http://localhost/test_json.php?dataType=debug
則列印除錯資訊
相關推薦
php中json資料和xml資料的封裝
<?php /* * 作用:將p轉換為josn格式的資料 * 備註:json_encode只接受UTF-8的編碼資料 */ //echo json_encode($arr); /* * 作用:將p3資料從p1編碼轉換為p2編碼 * p1: 原編碼 * p
php寫介面例子返回json和xml資料
<?php // echo md5("news1"); /* 查詢 介面地址:http://apis.juhe.cn/mobile/get 支援格式:json/xml 請求方
PHP對接APP的介面類,可返回json資料,xml資料
<?php /* * APP資料處理類 * 作 者:永樂開發 * 日 期:2017.7.31 * 郵 箱:[email protected] * 博 客:http://www.isu5.cn http://it.alipea.com */ class R
php操作XML,讀取資料和寫入資料的方法
xml檔案 <?xml version="1.0" encoding="utf-8"?> <vip> <id>23</id> <username>開心的路飛</username>
Ajax傳輸Json和xml資料
ajax傳輸xml資料:只要把資料封裝成xml格式就可以實現傳輸,前臺js用responseXML接收xml引數,後臺讀取用流和dom4j來解析 前臺頁面 <%@ page language="java" import="java.util.*"
Qt讀取JSON和XML資料
QJSON JSON(JavaScript Object Notation)是一個輕量級的資料交換格式; 可以將資料以name/value的形式任意組合; QJson 是一個基於Qt的庫, 將JSON的資料map成name-QVariant的形式, 或者進
java中從控制檯輸入資料和輸出資料到控制檯
1.從控制檯輸入資料 1.使用Scanner類來完成從命令列輸入資料到自己的程式中。 2.Scanner類是JDK1.5【jdk5.0】新增的一個開發類庫。 3.Scanner類使用 3.1先匯入Scanner類所在的程式包【java.util.Sca
ElasticSearch 學習記錄之 分散式文件儲存往ES中存資料和取資料的原理
分散式文件儲存 ES分散式特性 遮蔽了分散式系統的複雜性 叢集內的原理 垂直擴容和水平擴容 真正的擴容能力是來自於水平擴容–為叢集新增更多的節點,並且將負載壓力和穩定性分散到這些節點中 ES叢集特點 一個叢集擁有相同
PHP中關於session的詳細資料(超有用)
------------------------------------php.ini中關於session屬性的相關設定------------------------------------- 1) session.use_cookies:是否在客戶端用 cookie 來存放會話 ID,1是開
springBoot專案中的static和templates資料夾
記錄是為了更好的成長! 1、static檔案中的頁面 //這樣寫不能訪問static中index資料夾下的index.html頁面 @RequestMapping("index") public String hello() { return "/in
json的四大函式介紹(json資料和python資料之間的轉換)
json的四大函式介紹 在我們進行後端開發和爬蟲開發的時候,常會遇到json資料和python資料的轉換, 而這些轉換雖然簡單,但是卻很容易讓人產生混淆和困惑, 接下來我將對json資料和python資料格式的轉換做一個小的介紹,希望對各位讀者能夠起到一定的幫助… 1.loa
php 獲取當前目錄和當前資料夾
<?php /** * PHP獲取路徑或目錄實現 */ //魔術變數,獲取當前檔案的絕對路徑 echo "__FILE__: ========> ".__FILE__; echo PHP_EOL.PHP_EOL; //魔術變數,獲取當前指令碼的目錄 e
SpringBoot利用java反射機制,實現靈活讀取Excel表格中的資料和匯出資料至Excel表格
如果直接把固定Excel表格模板中的資料匯入資料庫,直接將Excel中的資料讀取出來,再存入資料庫中即可,將資料匯出至固定的Excel模板方法類似。但是,有時候,開發製作的模板與客戶需要的往往有些許差別(欄位排版、欄位數量等)。為了實現匯入匯出的靈活性,將利用java的反射機
opencv中rgb格式資料和base64資料轉換
最近在做一個專案,需要將base64轉成圖片rgb格式。 一般的做法是將base64字串先解碼寫入檔案,然後再去cv2.imread讀取圖片。這樣就繞彎了,如果能夠從base64直接轉為imread得到的rbg矩陣,就會節省時間開銷,具體做法比較簡單: def base6
在資料(MS-SQL)表中插入資料和更新資料
insert into dbo.time -- insert data (id,name) values(3, 'herry'); update dbo.time1 set id=4 where name='coly' -- update data
php中txt文件插入資料到伺服器
$mysql_server_name='127.0.0.1'; //改成自己的mysql資料庫伺服器 $mysql_username="root"; //改成自己的mysql資料庫使用者名稱 $mysql_password="root"; //改成自己的mysql資料庫密碼 $mysql_database
輕鬆上手使用ES6中的Set和Map資料結構
Set 基本用法 ES6提供了新的資料結構Set。它類似於陣列,但成員的值都是唯一的,沒有重複。Set本身是一個建構函式,用來生成Set資料結構。 const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach( x =>
第014講:Scala中Map和HashMap原始碼剖析及程式碼實踐(從1000個程式碼案例中學習人工智慧和大資料實戰)
第014講:Scala中Map和HashMap原始碼剖析及程式碼實踐/** * A generic trait for immutable maps. Concrete classes have to provide * functionality for the abs
Java實現在文字檔案中寫入資料和讀取資料
Java實現在文字檔案中寫入資料和讀取資料 寫資料到文字檔案中去: 程式碼如下所示: import java.io.File; import java.io.FileWriter; import java.io.IOException; public class
在salesforce中如何利用data loader匯入資料和刪除資料(mac)
使用mac的小夥伴在為sf的物件匯入資料記錄和匯出並刪除記錄時,一定遇到了很多麻煩,總結有兩點: 1.匯入的資料格式出現問題; 2.不知道如何使用data loader刪除資料。 現提供一下解決方案: 問題1解決方案:使用excel編輯好資料記錄後,儲存為csv格式資料,然