【PHP原生】xml和数组互转(微信支付签名算法)
发布时间:2020-12-16 23:43:34 所属栏目:百科 来源:网络整理
导读:数组转XML publicfunction arrayToXml( $arr ){ $xml ="xml" ; foreach ( $arr as $key = $val ){ if ( is_numeric ( $val )){ $xml .="". $key ."". $val ."/". $key ."" ;} else $xml .="". $key ."![CDATA[". $val ."]]/". $key ."" ;} $xml .="/xml" ; r
数组转XMLpublicfunction arrayToXml($arr) { $xml ="<xml>"; foreach($arr as $key => $val){ if(is_numeric($val)){ $xml .="<". $key .">". $val ."</". $key .">"; }else $xml .="<". $key ."><![CDATA[". $val ."]]></". $key .">"; } $xml .="</xml>"; return $xml; } XML转数组publicfunction xmltoarray($xml) { //禁止引用外部xml实体 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml,‘SimpleXMLElement‘, LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; } 微信支付签名sign算法//生成签名 //$data参与签名的关联数组,$key商户appkey publicfunction createSign(array $data,string $key) { ksort($data); //参与签名的数组重新按升序排列 $str =‘‘; foreach($data as $k => $v){ $str .= $k .‘=‘. $v .‘&‘; //数组转换成URL参数形式 } $str .=‘key=‘. $key; //拼接商户秘钥 return strtoupper(md5($str)); //MD5加密并转换成大写字母 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |