php获取通过http协议post提交过来xml数据及解析xml
本文介绍了php获取通过http协议post提交过来xml数据及解析xml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
php怎么获取接口返回的xml数据及解析xml
直接接收感觉会有风险,应该怎么做才安全
主要是接收数据的时候怎么做验证才安全
解决方案
$xml = file_get_contents("php://input");
libxml_disable_entity_loader(true);
$res = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
print_r($res);
//关于验证参考微信支付,参数中增加sign
/**
* 获取参数签名
* @param Array 要传递的参数数组
* @param String 秘钥
* @return String 通过计算得到的签名
*/
function getSign($params,$key) {
ksort($params);
foreach ($params as $key => $item) {
if (!empty($item)) {
$newArr[] = $key.'='.$item;
}
}
$stringA = implode("&", $newArr);
$stringSignTemp = $stringA."&key=".$key;
$stringSignTemp = md5($stringSignTemp);
$sign = strtoupper($stringSignTemp);
return $sign;
}
$s = $res['sign'];
unset($res['sign']);
$sign = getSign($res,$key);
if($sign === $s) {
return true;
}
return false;
这篇关于php获取通过http协议post提交过来xml数据及解析xml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文