PHP-php 如何获取请求的xml数据

小组聊天灌水 小组聊天灌水 主题:993 回复:2175

PHP-php 如何获取请求的xml数据

虐人心 发布于 2017-07-04 字数 69 浏览 1255 回复 6

对方通过http协议post提交过来xml数据,php如何获取到这些数据呢?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(6

偏爱自由 2017-10-20 6 楼

如果什么其他协议都不用,可以用php自带的fget获得对方的相应,比如
while( !feof( $fp ) ) {
$output .= fgets( $fp, 1024);
}
fclose( $fp);

以1024个字节为块,收取对方的返回内容。
然后用字符串函数加工一下,取出你想要的部分就ok了。

甜柠檬 2017-09-23 5 楼

就像普通的post,get请求一样,返回的数据格式为xml,整体其实就是当作字符串处理

偏爱自由 2017-09-16 4 楼

也可以用CURL 进行获取

$url = "你的请求地址";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// 需返回HTTP header
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$output = explode("rnrn",$output);
//头信息
$header = $output[0];
//内容
$output = $output[1];//这里获得你的XML 信息 ,然后自己解析XML
echo '<pre>',$output,'</pre>';

清晨说ぺ晚安 2017-08-27 3 楼

<?php
$xml = '<xml>xmldata</xml>';//要发送的xml
$url = 'http://localhost/test/getXML.php';//接收XML地址

$header = 'Content-type: text/xml';//定义content-type为xml
$ch = curl_init(); //初始化curl
curl_setopt($ch, CURLOPT_URL, $url);//设置链接
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置HTTP头
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//POST数据
$response = curl_exec($ch);//接收返回信息
if(curl_errno($ch)){//出错则显示错误信息
print curl_error($ch);
}
curl_close($ch); //关闭curl链接
echo $response;//显示返回信息
?>

灵芸 2017-07-22 2 楼

php 用 file_get_contents("php://input") 或者 $HTTP_RAW_POST_DATA 可以接收 xml 数据, 比如:

$xmldata = file_get_contents("php://input");
$data = (array)simplexml_load_string($xmldata);

这里的 $data 就是包含 xml 数据的数组,具体 php 解析 xml 数据更新详细的方法:
php解析XML方法 并存储

想挽留 2017-07-08 1 楼

php XMl 好好看看domdocument 对象..