Yii2 輸出xml格式數(shù)據(jù)的方法
php中對(duì)xml的處理,雖然說(shuō)實(shí)際開(kāi)發(fā)中目前用的少了,但是難免會(huì)用到,用到的時(shí)候呢,總結(jié)起來(lái)還是稍稍有那么一丁點(diǎn)的麻煩。
我們來(lái)看看yii2中是怎么對(duì)xml進(jìn)行處理的。會(huì)超乎你想象的簡(jiǎn)單哦。
我們以輸出xml格式的數(shù)據(jù)為例。
既然是輸出,必然就涉及到web請(qǐng)求與響應(yīng)了,不熟悉的可以先去了解下HTTP協(xié)議。
yii2中支持以下幾種返回格式,均可自定義配置。
HTML: implemented by yii\web\HtmlResponseFormatter.
XML: implemented by yii\web\XmlResponseFormatter.
JSON: implemented by yii\web\JsonResponseFormatter.
JSONP: implemented by yii\web\JsonResponseFormatter.
RAW: use this format if you want to send the response directly without applying any formatting.
我們就是沖著XML來(lái)的。
先來(lái)看一種簡(jiǎn)單的輸出xml格式數(shù)據(jù)
public function actionTest () { \Yii::$app->response->format = \yii\web\Response::FORMAT_XML; return [ 'message' => 'hello world', 'code' => 100, ]; }
這里我們指定了reponse響應(yīng)格式 FORMAT_XML,然后訪(fǎng)問(wèn)這個(gè)test方法就可以看到頁(yè)面上輸出了xml類(lèi)型的數(shù)據(jù)
<response> <message>hello world</message> <code>100</code> </response>
上面提到的方式未免有點(diǎn)麻煩,麻煩在配置多項(xiàng)的時(shí)候就不是那么方便了,我們來(lái)自己創(chuàng)建reponse對(duì)象試一試
public function actionTest () { return \Yii::createObject([ 'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_XML, 'formatters' => [ \yii\web\Response::FORMAT_XML => [ 'class' => 'yii\web\XmlResponseFormatter', 'rootTag' => 'urlset', //根節(jié)點(diǎn) 'itemTag' => 'url', //單元 ], ], 'data' => [ //要輸出的數(shù)據(jù) [ 'loc' => 'http://********', ], ], ]); }
為了方便接下來(lái)的說(shuō)明,上面一并做了配置,可以看到我們配置了響應(yīng)的格式format,單獨(dú)做了些配置,包括配置根節(jié)點(diǎn)rootTag,單元itemTag以及數(shù)據(jù)類(lèi)型。有同學(xué)注意到了,這里其實(shí)我們很簡(jiǎn)單的就實(shí)現(xiàn)了一個(gè)站點(diǎn)地圖的xml格式輸出。是的,就是這么簡(jiǎn)單。
- 解析yii數(shù)據(jù)庫(kù)的增刪查改
- Yii實(shí)現(xiàn)MySQL多數(shù)據(jù)庫(kù)和讀寫(xiě)分離實(shí)例分析
- Yii2.0高級(jí)框架數(shù)據(jù)庫(kù)增刪改查的一些操作
- Yii實(shí)現(xiàn)多數(shù)據(jù)庫(kù)主從讀寫(xiě)分離的方法
- YII2數(shù)據(jù)庫(kù)查詢(xún)實(shí)踐
- PHP的Yii框架中使用數(shù)據(jù)庫(kù)的配置和SQL操作實(shí)例教程
- Yii2如何批量添加數(shù)據(jù)
- Yii2 GridView實(shí)現(xiàn)列表頁(yè)直接修改數(shù)據(jù)的方法
- yii數(shù)據(jù)庫(kù)的查詢(xún)方法
- Yii學(xué)習(xí)總結(jié)之?dāng)?shù)據(jù)訪(fǎng)問(wèn)對(duì)象 (DAO)
- Yii2框架數(shù)據(jù)庫(kù)簡(jiǎn)單的增刪改查語(yǔ)法小結(jié)
- Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法
- Yii遍歷行下每列數(shù)據(jù)的方法
相關(guān)文章
關(guān)于laravel-admin ueditor 集成并解決刷新的問(wèn)題
今天小編就為大家分享一篇關(guān)于laravel-admin ueditor 集成并解決刷新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10php+ajax實(shí)現(xiàn)異步上傳文件或圖片功能
這篇文章主要為大家詳細(xì)介紹了php+ajax實(shí)現(xiàn)異步上傳文件或圖片功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07php源碼之將圖片轉(zhuǎn)化為data/base64數(shù)據(jù)流實(shí)例詳解
在網(wǎng)站開(kāi)發(fā)中,我們可以看到有的網(wǎng)站將圖片轉(zhuǎn)化為base64數(shù)據(jù)流,這樣做的好處有兩點(diǎn),一是減少服務(wù)器http請(qǐng)求,二是可以將圖片作為字符串存儲(chǔ)在數(shù)據(jù)庫(kù)中,即圖片可以直接從數(shù)據(jù)庫(kù)中讀取,那么php如何將圖片轉(zhuǎn)化為data/base64字符串呢?,需要的朋友可以參考下2016-11-11PHP使用openssl擴(kuò)展實(shí)現(xiàn)加解密方法示例
這篇文章主要介紹了PHP使用openssl擴(kuò)展實(shí)現(xiàn)加解密方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Laravel中簡(jiǎn)約卻不簡(jiǎn)單的Macroable宏指令詳解
這篇文章主要給大家介紹了關(guān)于Laravel中簡(jiǎn)約卻不簡(jiǎn)單的Macroable宏指令的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-07-07PHP中的類(lèi)型提示(type hinting)功能介紹
這篇文章主要介紹了PHP中的類(lèi)型提示(type hinting)功能介紹,本文講解了類(lèi)型提示的作用和使用方法以及使用示例,需要的朋友可以參考下2015-07-07