把數組轉化成一個xml字串–php

來源:互聯網
上載者:User

一:代碼:

 

<?php
 
//************************test***************************
$vararray   =   array(  
                          "name"     =>   array("alen", "andy", "tom"),
                          "cuntry"   => array("china","japan","english"),
                          "number"   => array(1,2,3, array(11,22,33))
                      );  
$pp = toXml($vararray,"gb2312");
echo $pp;

/**
*把給定的數組轉化成一個xml字串
*
* @author [yans@tks-it.com.cn]
* @param  $arrays  :要轉換的數組
* @param  $encoding:xml檔案的編碼
* @return string
*/
function toXml($arrays,$encoding='')
{
 // 數組檢測
 if(!is_array($arrays))
 {
  echo "<font color='red'>$arrays is not a array!</font>";
  return false;
 }
 $xmlstr = '';
 // xml檔案編碼設定
 if($encoding=='')
 {
  $xmlstr  .='<?xml version="1.0" encoding="utf-8" ?>';
 }
 else
 {
  $xmlstr  .='<?xml version="1.0" encoding="';
  $xmlstr  .=$encoding;
  $xmlstr  .='" ?>';
 }
 $xmlstr .='<root>';
 // 調用遍曆數組函數
 $xmlstr .= traversal($arrays);
 $xmlstr .='</root>';
 return $xmlstr;
}

/**
*遍曆數組,成一個xml片段字串
*
* @author [yans@tks-it.com.cn]
* @param  $arr   :要遍曆的數組
* @return string
*/  
function traversal($arr)
{
  $arrString = '';
  while($newArr = each($arr))
  {
     $arrString .= "<$newArr[0]>";
     if(is_array($newArr[1]))
     {
        $tempString = traversal($newArr[1]);
        $arrString .= $tempString;
     }
     else
     {
        $arrString .= "$newArr[1]";
     }
    $arrString .= "</$newArr[0]>";
  }
  return $arrString;
}
?>

二:執行的結果:(結果已經手動調整,便於觀察)

 

<?xml version="1.0" encoding="gb2312" ?>
<root>
<name>
<0>alen</0>
<1>andy</1>
<2>tom</2>
</name>

<cuntry>
<0>china</0>
<1>japan</1>
<2>english</2>
</cuntry>

<number>
<0>1</0>
<1>2</1>
<2>3</2>
<3>
 <0>11</0>
 <1>22</1>
 <2>33</2>
</3>
</number>

</root>

三:備忘:

注意:xml的標籤是以底線和字母開頭的,且不能又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.