分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

PHP通过XML报文格式的POST请求方式,与第三方接口交互(发送xml,获取XML,并解析xml步骤)

发布时间:2023-09-06 01:29责任编辑:沈小雨关键词:PHPxmlPOST

开发者端:发送请求,并接收结果

<?php// ?下面的demo,实现的功能如下:// ??1-开发者需要判断一个用户是否存在,去请求第三方接口。// ??2-与第三方接口的通信,是以xml格式传送数据。开发者把用户信息以xml格式发送给第三方接口// ??3-第三方接口获取开发者的xml数据,通过数据的查询,把结果再以xml的格式发送给开发者。//首先检测是否支持curlif (!extension_loaded("curl")) { ???trigger_error("对不起,请开启curl功能模块!", E_USER_ERROR);}//构造xml$xmldata="<?xml version=‘1.0‘ encoding=‘UTF-8‘?><group><name>张三</name><age>22</age></group>";//初始一个curl会话$curl = curl_init();//设置urlcurl_setopt($curl, CURLOPT_URL,"http://localhost/demo/dealxml.php");//设置发送方式:postcurl_setopt($curl, CURLOPT_POST, true);//设置发送数据curl_setopt($curl, CURLOPT_POSTFIELDS, $xmldata);//TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);//执行cURL会话 ( 返回的数据为xml )$return_xml = curl_exec($curl);//关闭cURL资源,并且释放系统资源curl_close($curl);//echo $return_xml;//exit;//禁止引用外部xml实体libxml_disable_entity_loader(true);//先把xml转换为simplexml对象,再把simplexml对象转换成 json,再将 json 转换成数组。$value_array = json_decode(json_encode(simplexml_load_string($return_xml, ‘SimpleXMLElement‘, LIBXML_NOCDATA)), true);echo "<pre>";print_r($value_array);?>

第三方接口端:接收请求,并返回处理结果

<?php//接收传送的数据$fileContent = file_get_contents("php://input"); ### 把xml转换为数组//禁止引用外部xml实体libxml_disable_entity_loader(true);//先把xml转换为simplexml对象,再把simplexml对象转换成 json,再将 json 转换成数组。$value_array = json_decode(json_encode(simplexml_load_string($fileContent, ‘SimpleXMLElement‘, LIBXML_NOCDATA)), true);### 获取值,进行业务处理$name = $value_array[‘name‘];$age = $value_array[‘age‘];// 通过查询,判断该用户是否存在### 把查询结果添加到数组中$value_array[‘result‘] = 1;### 把数组转换为xml格式,返回$xml = "<?xml version=‘1.0‘ encoding=‘UTF-8‘?><group>";foreach ($value_array as $key=>$val){ ???if (is_numeric($val)){ ???????$xml.="<".$key.">".$val."</".$key.">"; ???}else{ ???????$xml.="<".$key."><![CDATA[".$val."]]></".$key.">"; ???}}$xml.="</group>";
// echo $xml;
return $xml;?>

PHP通过XML报文格式的POST请求方式,与第三方接口交互(发送xml,获取XML,并解析xml步骤)

原文地址:http://www.cnblogs.com/wszz/p/7992020.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved