php写的xml或者自定义格式字符串转换为key-value工具方法

<?php
//header("Content-type: text/html;charset=utf-8");
function xml2KV($data,$rootTagName)
{
$parser = xml_parser_create_ns("utf-8");
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $tags);
xml_parser_free($parser);

foreach ($tags as $key=>$val) {
if ($key == $rootTagName) {
$molranges = $val;
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parseMol(array_slice($values, $offset, $len));
}
} else {
continue;
}
}
return $tdb;

}
function parseMol($mvalues)
{
for ($i=0; $i < count($mvalues); $i++) {
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
}
return new proxyObj($mol);
}
class proxyObj{

function proxyObj($data)
{
foreach($data as $k=>$v)
{
$this->$k=$data[$k];
}
}
}

function str2KV($data)
{
//eg:$topic="userId:123456|topicName:topicname|content:content||userId:1256|topicName:tcname|content:co";

$arr=explode("||",$data);
for($j=0;$j<count($arr);$j++)
{

$arr1=explode("|",$arr[$j]);
for($i=0;$i<count($arr1);$i++)
{
$arr2=explode(":",$arr1[$i]);
$kv[$arr2[0]]=$arr2[1];
}
$kvarr[$j]=$kv;
}

return $kvarr;
}
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值