首页 > 编程知识 正文

php数组怎么转xml,php把字符串转换成数组

时间:2023-12-27 22:26:40 阅读:324696 作者:YDVC

本文目录一览:

php 怎么将数组转xml的函数

没有现成函数,只能自己写;我有一个别人写的函数:

?php

class A2Xml {

private $version = '1.0';

private $encoding = 'UTF-8';

private $root = 'root';

private $xml = null;

function __construct() {

$this-xml = new XmlWriter();

}

function toXml($data, $eIsArray=FALSE) {

if(!$eIsArray) {

$this-xml-openMemory();

$this-xml-startDocument($this-version, $this-encoding);

$this-xml-startElement($this-root);

}

foreach($data as $key = $value){

if(is_array($value)){

$this-xml-startElement($key);

$this-toXml($value, TRUE);

$this-xml-endElement();

continue;

}

$this-xml-writeElement($key, $value);

}

if(!$eIsArray) {

$this-xml-endElement();

return $this-xml-outputMemory(true);

}

}

}

$res = array(

'hello' = '11212',

'world' = '232323',

'array' = array(

'test' = 'test',

'b' = array('c'='c', 'd'='d')

),

'a' = 'haha'

);

$xml = new A2Xml();

echo $xml-toXml($res);

多维PHP数组怎么转换成xml格式的数据

public function arrayToXml($arr){

$xml = "xml";

foreach ($arr as $key=$val){

if(is_array($val)){

$xml.="".$key."".arrayToXml($val)."/".$key."";

}else{

if (is_numeric($val)){

$xml.="".$key."".$val."/".$key."";

}else{

$xml.="".$key."![CDATA[".$val."]]/".$key."";

}

}

}

$xml.="/xml";

return $xml;

}

求一个PHP把一维数组转化为xml格式和再从xml格式转回一维数组的方法,求示例代码。谢谢。

代码

Code highlighting produced by Actipro CodeHighlighter (freeware);// Xml 转 数组, 包括根键,忽略空元素和属性,尚有重大错误

function xml_to_array( $xml )

{

$reg = "/(\w+)[^]*?([\x00-\xFF]*?)\/\1/";

if(preg_match_all($reg, $xml, $matches))

{

$count = count($matches[0]);

$arr = array();

for($i = 0; $i $count; $i++)

{

$key= $matches[1][$i];

$val = xml_to_array( $matches[2][$i] ); // 递归

if(array_key_exists($key, $arr))

{

if(is_array($arr[$key]))

{

if(!array_key_exists(0,$arr[$key]))

{

$arr[$key] = array($arr[$key]);

}

}else{

$arr[$key] = array($arr[$key]);

}

$arr[$key][] = $val;

}else{

$arr[$key] = $val;

}

}

return $arr;

}else{

return $xml;

}

}

// Xml 转 数组, 不包括根键

function xmltoarray( $xml )

{

$arr = xml_to_array($xml);

$key = array_keys($arr);

return $arr[$key[0]];

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。