做微信第三方接口接入的時(shí)候發(fā)現(xiàn)接口返回的數(shù)據(jù)都是xml格式的娩践。
以下是如何把xml格式轉(zhuǎn)化為普通的數(shù)組格式取值。
xml格式數(shù)據(jù):
$xmlstr="<xml>
<mch_appid>".$data['mch_appid']."</mch_appid>
<mchid>".$data['mchid']."</mchid>
<nonce_str>".$data['nonce_str']."</nonce_str>
<partner_trade_no>".$data['partner_trade_no']."</partner_trade_no>
<openid>".$data['openid']."</openid>
<check_name>".$data['check_name']."</check_name>
<amount>".$data['amount']."</amount>
<desc>".$data['desc']."</desc>
<spbill_create_ip>".$data['spbill_create_ip']."</spbill_create_ip>
<sign>".$data['sign']."</sign></xml>";
$res =$this->curl_post_ssl($api, $xmlstr);
xml轉(zhuǎn)化為數(shù)組步驟:
$xml = simplexml_load_string($res , 'SimpleXMLElement' , LIBXML_NOCDATA );
但是轉(zhuǎn)化過來(lái)的并不是普通的php數(shù)組,而是SimpleXMLElement Object數(shù)組
結(jié)果如下:
object(SimpleXMLElement)#11 (5) {
["return_code"]=>
string(7) "SUCCESS"
["return_msg"]=>
string(7) "NO_AUTH"
["result_code"]=>
string(4) "FAIL"
["err_code"]=>
string(7) "NO_AUTH"
["err_code_des"]=>
string(73) "產(chǎn)品權(quán)限驗(yàn)證失敗,請(qǐng)查看您當(dāng)前是否具有該產(chǎn)品的權(quán)限"
}
接下來(lái) 進(jìn)行簡(jiǎn)單粗暴的強(qiáng)制類型轉(zhuǎn)換
SimpleXMLElement Object數(shù)組 轉(zhuǎn)化為普通數(shù)組步驟:
$xml_data = ((array)$xml);
如果如下:
array(5) {
["return_code"]=>
string(7) "SUCCESS"
["return_msg"]=>
string(7) "NO_AUTH"
["result_code"]=>
string(4) "FAIL"
["err_code"]=>
string(7) "NO_AUTH"
["err_code_des"]=>
string(73) "產(chǎn)品權(quán)限驗(yàn)證失敗,請(qǐng)查看您當(dāng)前是否具有該產(chǎn)品的權(quán)限"
}