两个方法 递归转换 数组和xml
电子手机配件网站源码是一个响应式的织梦网站模板,软件兼容主流浏览器,且可以在PC端和手机端中进行浏览。模板包含安装说明,并包含测试数据。本模板基于DEDECms 5.7 UTF-8设计,需要GBK版本的请自己转换。模板安装方法:1、下载最新的织梦dedecms5.7 UTF-8版本。2、解压下载的织梦安装包,得到docs和uploads两个文件夹,请将uploads里面的所有文件和文件夹上传到你的
0
<?php
/*simplexml数组和xml转换*/
// 对象转数组:为了更好地找到需要的节点
function toarray($sim){
// 1 先把最外面的object变成数组
$sim=(array)$sim;
//如果是对象或者数组,就都递归,运用上面的转变,如果不是这两者之一就pass
foreach ($sim as $k => $v) {
if ($v instanceof simplexmlelement||is_array($v)) {
$sim[$k]=toarray($v);
}
}
return $sim;
}
$sx=simplexml_load_file('./try.xml');
print_r($sx);
print_r(toarray($sx));
// 看源代码可以看到,网页返回是报错
$arr=array('a'=>'111',
'b'=>'2222',
'c'=>array(
'd'=>'hahaha',
'e'=>array(
'what'=>'the x')));
// 数组转xml,新的数组加入到新xml里,,arr to xml
function toxml($arr,$node=null){
// 创建新xml文件
if ($node==null) {
$simxml=new simpleXMLElement ('<?xml version="1.0" encoding="utf-8"?><root></root>');
}else{
$simxml=$node;
}
//
foreach ($arr as $k => $v) {
if (is_array($v)) {
// addChild(节点名,内容)
// 如果是数组,就要建节点 把这个数组里的东西放进去--》v是个数组,
// 大节点名是k,到下一回,把东西放进这个sim-》addchild里
toxml($v,$simxml->addChild($k));
//如果数组键是数字,就要自己给他个标签名,因为直接用数字 会出问题
}else if (is_numeric($k)) {
$simxml->addChild('item',$v);
}else{
// 不是数组就直接添加子元素 键名-键值
$simxml->addChild($k,$v);
}
}
return $simxml->saveXML();
}
header('content-type:text/xml');
echo toxml($arr);
?>以上就介绍了转换XML和数组,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号