php xml encode,ThinkPHP源码学习 xml_encode函数 数据转成xml格式

/**

* 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   .= "";//$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    .=  "";

$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"?>

liming

xiaowang

hello,world!

‘ (length=133)

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

原文:http://11410485.blog.51cto.com/11400485/1833531

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值