`

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;
}
?>
分享到:
评论

相关推荐

    Laravel开发-laravel-xml

    此外,如果你需要处理XML的解析和验证,可以使用`simplexml_load_string`或`DOMDocument::loadXML`来解析XML字符串,`DOMDocument::schemaValidate`来进行XML Schema验证。 总之,Laravel提供了基本的XML响应能力,...

    PHP 将 XML文件或内容直接转成数组

    * @param string $xml XML字符串或文件路径 * @param string $section 需要处理的XML部分名称 * @return array 转换后的数组 */ function xmlToArray($xml, $section = '') { if (!$xml) { return []; } if...

    php递归解析xml

    SimpleXML是一个易于使用的接口,可将XML字符串或文件加载为PHP对象。以下是一个简单的例子: ```php $xmlString = &lt;&lt;&lt;XML &lt;item id="1"&gt;Item 1 &lt;subitem&gt;Subitem 1 &lt;subitem&gt;Subitem 2 XML; $xml = ...

    Laravel开发-eloquent-castable

    例如,创建一个`JsonArrayCast`类,用于将数据库中的JSON字符串转换为PHP数组: ```php use Illuminate\Contracts\Database\Eloquent\CastsAttributes; use Illuminate\Contracts\Database\Eloquent\...

    jquery电子文档chm

    将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换...

    php 操作INI文件,读取,设置,ini文件

    - 使用`ini_set()`函数(仅适用于PHP的运行时配置)或自定义函数将数组转换回INI字符串。 - 使用`file_put_contents()`写入文件。 4. **处理INI文件的Section** INI文件中的Section是通过方括号`[]`包围的,如`...

    php处理复杂xml数据示例

    `simplexml_load_string`是PHP内建的一个函数,用于将XML字符串转换为SimpleXMLElement对象,这使得我们可以像操作普通PHP数组一样操作XML数据。例如: ```php $xml = &lt;&lt;&lt; XML &lt;?xml version="1.0" encoding="utf-8...

    Jquery遍历json的两种数据结构[参照].pdf

    1. 手动转换:开发者可以编写自定义类将数据库查询结果转换为JSON字符串。这需要对JSON的语法有深入理解,确保生成的JSON字符串符合规范。 2. 使用第三方库:如json-lib或jackson等,这些库提供了方便的API,能够...

    php版微信发红包接口用法示例

    这个类通常会包含一些关键方法,如生成随机字符串、签名计算、XML数据转换等。在示例代码中,`Common_util_pub` 类包含了这些功能: 1. `createNoncestr` 方法:生成一个指定长度(默认32位)的随机字符串,用于...

    HTML数据提交post_动力节点Java学院整理

    在JavaScript中,可以使用JSON.stringify()将JavaScript对象转换成JSON字符串。 4. **XML格式** 尽管XML不像JSON那么流行,但某些情况下仍然使用XML作为数据交换格式。POST请求的Content-Type为`application/xml`...

    my_ajax_note

    - **编码**:`json_encode(数据)`,将数组或对象转化为JSON字符串。 - **解码**:`json_decode(json数据, $assoc)`,其中 `$assoc` 参数为 `true` 时返回数组,为 `false` 时返回对象。 示例: ```php $data = ...

    ZendFramework中文文档

    5.4. Zend_Config_Xml 6. Zend_Console_Getopt 6.1. Getopt 简介 6.2. 声明 Getopt 规则 6.2.1. 用短语法声明选项 6.2.2. 用长语法声明选项 6.3. 读取(Fetching)选项和参数 6.3.1. 操作 Getopt 异常 6.3.2...

    Jquery中ajax提交表单几种方法(get、post两种方法)

    在jQuery中,Ajax提交表单是常见的数据交互方式,它允许我们在不刷新页面的情况下与服务器交换数据并更新部分网页...在处理表单数据时,`$.serialize()`是一个便捷的工具,可以方便地将表单数据转换为适合发送的格式。

    $.ajax()常用方法详解(推荐)

    Object会自动转换成查询字符串格式,而数组会转换成多个同名参数。 7. **dataType**:预期的服务器响应数据类型,如xml、html、script、json、jsonp、text。jQuery会尝试根据HTTP响应头的MIME类型自动判断,但也...

Global site tag (gtag.js) - Google Analytics