ThinkPHP源碼學習 xml_encode函數 資料轉成xml格式

來源:互聯網
上載者:User

標籤:thinkphp源碼學習 xml_encode函數 xml array

/**
 * XML編碼
 * @param mixed $data 資料
 * @param string $root 根節點名
 * @param string $item 數字索引的子節點名
 * @param string $attr 根節點屬性
 * @param string $id   數字索引子節點key轉換的屬性名稱
 * @param string $encoding 資料編碼
 * @return string
 */

function xml_encode($data, $root=‘think‘, $item=‘item‘, $attr=‘‘, $id=‘id‘,$encoding=‘utf-8‘) {    if(is_array($attr)){        $_attr = array();        foreach ($attr as $key => $value) {            $_attr[] = "{$key}=\"{$value}\"";        }        $attr = implode(‘ ‘, $_attr);//implode — 將一個一維數組的值轉化為字串    }    $attr   = trim($attr);    $attr   = empty($attr) ? ‘‘ : " {$attr}";    $xml    = "<?xml version=\"1.0\" encoding=\"{$encoding}\"?>";//  \"  表示轉義雙引號    $xml   .= "<{$root}{$attr}>";//$attr根節點屬性    $xml   .= data_to_xml($data, $item, $id);    $xml   .= "</{$root}>";    return $xml;}function data_to_xml($data, $item=‘item‘, $id=‘id‘) {    $xml = $attr = ‘‘;    foreach ($data as $key => $val) {        if(is_numeric($key)){            $id && $attr = " {$id}=\"{$key}\"";            $key  = $item;        }     $xml    .=  "<{$key}{$attr}>";     $xml  .=  (is_array($val) || is_object($val)) ? data_to_xml($val, $item, $id) : $val;     $xml    .=  "</{$key}>";    }    return $xml;}$data = array(    ‘note‘=>array(        ‘from‘=>‘liming‘,        ‘to‘=>‘xiaowang‘,        ‘message‘=>‘hello,world!‘    ));$a=xml_encode($data);var_dump($a);

執行結果為:

string ‘<?xml version="1.0" encoding="utf-8"?>        <think>           <note>               <from>liming</from>               <to>xiaowang</to>               <message>hello,world!</message>            </note>         </think>‘ (length=133)

注意:結果格式手動調整一下,方便閱讀!



本文出自 “11400485” 部落格,請務必保留此出處http://11410485.blog.51cto.com/11400485/1833531

ThinkPHP源碼學習 xml_encode函數 資料轉成xml格式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.