/**
* XML编码
* @param mixed $data 数据
* @param string $root 根节点名
* @param string $item 数字索引的子节点名
* @param string $attr 根节点属性
* @param string $id 数字索引子节点key转换的属性名
* @param string $encoding 数据编码
* @return string
*/

functionxml_encode($data,$root='think',$item='item',$attr='',$id='id',$encoding='utf-8'){if(is_array($attr)){$_attr=array();foreach($attras$key=>$value){$_attr[]="{$key}=\"{$value}\"";}$attr=implode('',$_attr);//implode—将一个一维数组的值转化为字符串}$attr=trim($attr);$attr=empty($attr)?'':"{$attr}";$xml="<?xmlversion=\"1.0\"encoding=\"{$encoding}\"?>";//\"表示转义双引号$xml.="<{$root}{$attr}>";//$attr根节点属性$xml.=data_to_xml($data,$item,$id);$xml.="</{$root}>";return$xml;}functiondata_to_xml($data,$item='item',$id='id'){$xml=$attr='';foreach($dataas$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'<?xmlversion="1.0"encoding="utf-8"?><think><note><from>liming</from><to>xiaowang</to><message>hello,world!</message></note></think>'(length=133)

注意:结果格式手动调整一下,方便阅读!