PHP操作XML的经验
2013-03-28 21:59
274 查看
最近接了一个项目,很多功能需要以xml为接口来回进行一系列的操作。现在附下我的一点经验。情况一:当是你收到xml信息进行处理的时候,可以用以下步骤 ://输出严格的xml格式header ( 'Content-type: text/xml' );echo pack ( "C3" , 0xef, 0xbb, 0xbf );//通过php输入流得到数据$userinfo =
file_get_contents('php://input');//将得到的字符串数据对象化$xml_obj =
simplexml_load_string($userinfo);$xml_arr = xmltoarray($xml_obj);然后使用下面函数进行处理。function xmltoarray($object, &$tmparr=array())
{if
(is_object($object)) {$tmparr =
get_object_vars($object);}foreach
($tmparr as $k => $v) {if
(is_array($v)) {$tmparr[$k]
= xmltoarray($v, $tmparr[$k]);} elseif
(is_object($v)) {$tmparr[$k]
= xmltoarray($v, $tmparr[$k]);} else
{$tmparr[$k]
= $v;}}return
$tmparr;}情况二:我以curl发送请求时,他们返回的xml不能进行对象化,所以我在w3c找到了
他可以将传回来的信息序列化成数组。
[/code]
file_get_contents('php://input');//将得到的字符串数据对象化$xml_obj =
simplexml_load_string($userinfo);$xml_arr = xmltoarray($xml_obj);然后使用下面函数进行处理。function xmltoarray($object, &$tmparr=array())
{if
(is_object($object)) {$tmparr =
get_object_vars($object);}foreach
($tmparr as $k => $v) {if
(is_array($v)) {$tmparr[$k]
= xmltoarray($v, $tmparr[$k]);} elseif
(is_object($v)) {$tmparr[$k]
= xmltoarray($v, $tmparr[$k]);} else
{$tmparr[$k]
= $v;}}return
$tmparr;}情况二:我以curl发送请求时,他们返回的xml不能进行对象化,所以我在w3c找到了
xml_parse_into_struct() 函数
他可以将传回来的信息序列化成数组。<?php // xml 文件 $xmlfile = 'test.xml'; $xmlparser = xml_parser_create(); // 打开文件并读取数据 $fp = fopen($xmlfile, 'r'); $xmldata = fread($fp, filesize($xmlfile)); [code]xml_parse_into_struct($xmlparser,$xmldata,$values);xml_parser_free($xmlparser);print_r($values);?>
[/code]
相关文章推荐
- php xml操作
- php操作xml并将其插入数据库的实现方法
- [经验总结]Perl读取Excel数据并调用MSXML接口操作XML数据
- PHP通过DOM操作XML
- PHP XML操作的各种方法解析(比较详细)
- php中DOMElement操作xml文档实例演示
- php DOMElement 操作xml 文档的示例代码
- PHP扩展之XML操作(三)——XML解析器使用及相关函数
- php操作xml的各种方法的解析
- 1 详解PHP使用DOMDocument类遍历、增加、修改、删除XML节点操作
- php XML操作小tip
- PHP 操作 XML 文件 - 读取、显示
- PHP XML操作的各种方法解析
- PHP通过DOM操作XML
- PHPdom操作查找xml标签文本
- php操作xml详解
- PHP实现对xml进行简单的增删改查(CRUD)操作示例
- php xml 操作。
- PHP原生DOM对象操作XML
- PHP SimpleXML 操作xml文档,添加元素 添加属性