扫码关注官方订阅号
php怎么获取接口返回的xml数据及解析xml
直接接收感觉会有风险,应该怎么做才安全
主要是接收数据的时候怎么做验证才安全
小伙看你根骨奇佳,潜力无限,来学PHP伐。
$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;
simplexml
$xml = file_get_contents("php://input"); $xml = new \SimpleXMLElement($xml); $data = []; foreach ($xml as $key => $value) { $data[$key] = strval($value); } 你可以在传输的Xml数据里面添加一列sign,将前面的数据用加密算法计算出结果后再填充进去,不过密钥不要在网络上传输哈
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
simplexml