`

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

    博客分类:
  • php
阅读更多
<?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;
}
?>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics