//访问二维数组的方法,1、读XML文件内容

  • 栏目:编程 时间:2020-05-03 19:33
<返回列表

本文分享了php读写json文件的实例代码,非常实用,有兴趣的同学可以参考一下

例子

?php

现在有一个uncletoo.xml的配置文件,格式如下:

//生成一个PHP数组

<h6>Step 1: XML File</h6>
<?xml version='1.0'?>
<moleculedb>
    <molecule name='Benzine'>
        <symbol>ben</symbol>
        <code>A</code>
    </molecule>
    <molecule name='Water'>
        <symbol>h2o</symbol>
        <code>K</code>
    </molecule>
<molecule name='Parvez'>
        <symbol>h2o</symbol>
        <code>K</code>
    </molecule>
</moleculedb>

$data=array(

1、读XML文件内容,并保存到字符串变量中

0=array(a=orange,

下面我们使用PHP自带的file_get_contents()函数将文件内容读取到一个字符串变量中:

b=banana,

$xmlfile = file_get_contents($path);

c=apple

此时$xmlfile变量的值如下:

),

韦德体育 1

1=array(1,2,3,4,5,6),

2、将字符串转换为对象

2=array(first,5=second,third)

这一步我们将使用simplexml_load_string()函数,将上一步得到的字符串转换为对象(Object):

);

$ob= simplexml_load_string($xmlfile);

$data[3][id]=

此时$ob的值如下:

韦德体育 ,$data[3][content]=phperwei31;

韦德体育 2
3、将对象转换为JSON

//访问二维数组的方法

上一步转换成对象后,现在,我们要将对象转换成JSON格式字符串:

echo$data[0][a];

$json  = json_encode($ob);

echo$data[1][1];

此时$json变量的值如下:

echo$data[2][0];

韦德体育 3
4、解析JSON字符串

echo$data[2][5];

这也是最后一步了,我们需要将JSON格式的字符串转换为我们需要的数组:

echo$data[2][6];//注意,前面出现了5,下面接着自动为6,而不是2,第三个

$configData = json_decode($json, true);

echo$data[3][id];

现在$configData里存储的数据就是我么最后要得到的数组,如下:

echo$data[3][content];

韦德体育 4
完整转换代码:

//把PHP数组转成JSON字符串

 代码如下

$json_string=json_encode($data);

<?php
$xmlfile = file_get_contents($path);
$ob= simplexml_load_string($xmlfile);
$json  = json_encode($ob);
$configData = json_decode($json, true);
?>

//写入文件

下面为网上整理的xml转换数组函数

file_put_contents(test.json,$json_string);

例子一,将XML转成数组

?

 代码如下

?php

如果你使用 curl 获取的 xml data
$xml = simplexml_load_string($data);
$data['tk'] = json_decode(json_encode($xml),TRUE);
如果是直接获取 URL 数据的话
$xml = simplexml_load_file($data);
$data['tk'] = json_decode(json_encode($xml),TRUE);
先把 simplexml 对象转换成 json,再将 json 转换成数组。

//从文件中读取数据到PHP变量

例子二,通过遍历

$json_string=file_get_contents(test.json);

 代码如下

//把JSON字符串转成PHP数组

// Xml 转 数组, 包括根键
function xml_to_array( $xml )
{
$reg = "/<(w+)[^>]*>([\x00-\xFF]*)<\/\1>/";
if(preg_match_all($reg, $xml, $matches))
{
$count = count($matches[0]);
for($i = 0; $i < $count; $i++)
{
$subxml= $matches[2][$i];
$key = $matches[1][$i];
if(preg_match( $reg, $subxml ))
{
$arr[$key] = xml_to_array( $subxml );
}else{
$arr[$key] = $subxml;
}
}
}
return $arr;
}
// Xml 转 数组, 不包括根键
function xmltoarray( $xml )
{
$arr = xml_to_array($xml);
$key = array_keys($arr);
return $arr[$key[0]];
}

$data=json_decode($json_string,true);

例子三

//显示出来看看

 代码如下

var_dump($data);

function simplexml_obj2array($obj){
      if ($obj instanceof SimpleXMLElement) {
       $obj = (array)$obj;
      }
    
      if (is_array($obj)) {
       $result = $keys = array();
       foreach( $obj as $key=>$value)
       {
        isset($keys[$key]) ? ($keys[$key] += 1) : ($keys[$key] = 1);
    
        if( $keys[$key] == 1 )
        {
         $result[$key] = simplexml_obj2array($value);
        }
        elseif( $keys[$key] == 2 )
        {
         $result[$key] = array($result[$key], simplexml_obj2array($value));
        }
        else if( $keys[$key] > 2 )
        {
         $result[$key][] = simplexml_obj2array($value);
        }
       }
       return $result;
      } else {
       return $obj;
      }
 }
$xml=simplexml_load_file("D:/ www.111cn.net /lib/books.xml");
 
$rss = simplexml_obj2array($xml);

?

上一篇:      -- 需要返回的列  下一篇:韦德体育就是留言页面

更多阅读

//访问二维数组的方法,1、读XML文件内容

编程 2020-05-03
本文分享了php读写json文件的实例代码,非常实用,有兴趣的同学可以参考一下 例子 ?php 现在有...
查看全文

国内还没有什么DBM程序

编程 2020-05-03
这个同学录原来给我们班级用的,因为服务器没有mysql支持,就选择了DBM国内还没有什么DBM程序...
查看全文

韦德体育就是留言页面

编程 2020-05-03
今天我们来讲一下用php制作简单的留言板,首先来分析一下留言板, ajax验证文章我以前写过很多...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有