博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tp5 处理xml 数据
阅读量:6363 次
发布时间:2019-06-23

本文共 1543 字,大约阅读时间需要 5 分钟。

//xml请求方法

public function docommon($url,$data){
$ch = curl_init(); $timeout = 30; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:text/xml; charset=utf-8")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//Post提交的数据包 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_HEADER, 0); ob_start(); $result = curl_exec($ch); $str=ob_get_contents(); ob_clean(); curl_close($ch); return $str; } //$arr 为请求到的数据
$arr = $this->docommon($url,$data); // 使用domdocument 来操作xml
$dom = new \DOMDocument(); // 解析xml类 $dom->loadXML($arr); // 处理xml数据
$zarr=getArray($dom->documentElement);
//xml 转为array function getArray($node) {
$array = false; if ($node->hasAttributes()) {
foreach ($node->attributes as $attr) {
$array[$attr->nodeName] = $attr->nodeValue; } } if ($node->hasChildNodes()) {
if ($node->childNodes->length == 1) {
$array[$node->firstChild->nodeName] = getArray($node->firstChild); } else {
foreach ($node->childNodes as $childNode) {
if ($childNode->nodeType != XML_TEXT_NODE) {
$array[$childNode->nodeName][] = getArray($childNode); } } } } else {
return $node->nodeValue; } return $array; }
 

转载于:https://www.cnblogs.com/niu6/p/8607779.html

你可能感兴趣的文章
IronPython教程
查看>>
squid via检测转发循环
查看>>
计算分页
查看>>
iptables 做nat路由器脚本
查看>>
数据结构(C语言版)第三章:栈和队列
查看>>
Keepalive 之 keepalive概念介绍
查看>>
Stopping and/or Restarting an embedded Jetty in...
查看>>
Oracle存储过程中的数据集输入参数
查看>>
vsftp 配置
查看>>
VCSA中配置时间和时区,实测至6.5适用
查看>>
高并发IM系统架构优化实践
查看>>
产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
查看>>
有关linux--进程组、会话、守护进程详解
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
monkeyrunner运行Python脚本来检查apk渠道和验证是否可以调用微信
查看>>
github获得SSH Key解决Permission denied (publickey)问题
查看>>
用java代码编写Oracle存储过程
查看>>
APACHE转发
查看>>
android-market-api
查看>>