public function query(){
$wsdl= 'http://*********************';
try{
libxml_disable_entity_loader(false);
$options=[
'soap_version'=>SOAP_1_1,
'trace'=>true,
'exceptions'=>true,
'cache_wsdl'=>WSDL_CACHE_NONE,
'wsdl_cache_ttl'=>WSDL_CACHE_NONE,
'encoding'=>'utf-8',
];
$client = new \SoapClient($wsdl, $options);
$data=[];
$data['name'] = '';
$data['tel'] = '';
$xmlData=[
'add' =>'',
];
$xml='<?xml version="1.0" encoding="UTF-8"?>';
$bodyXml=$this->arrayToXml($xmlData,'root');
$xml=$xml.$bodyXml;
$params=[
'namne' =>$data['name'],
'tel' =>$data['tel'],
'xmldoc' =>$xml ,
];
$result=$client->queryObject($params);
if (!$result->return){
exit(json_encode(['code'=>'0','msg'=>'響應數據爲空'],JSON_UNESCAPED_UNICODE));
}
$result->return=str_replace('<?xml version="1.0" encoding="GBK"?>','', $result->return);
$redataArr=xmlToArray($result->return);
if (!$redataArr){
exit('響應數據解析失敗');
}
return [
'code'=>1,
'msg'=>'成功',
'data'=>$redataArr
];
}catch (\SOAPFault $e) {
exit('查詢信息失敗,'.$e->getMessage());
}catch (\Exception $exception){
exit('查詢信息失敗,系統異常:'. $exception->getMessage());
}
}
function arrayToXml($array,$type){
$xml = "<$type><QueryCondition>";
foreach ($array as $key=>$val){
if(is_array($val)){
$xml.="<".$key.">".$this->arrayToXml($val,$type)."</".$key.">";
}else{
$xml.="<".$key.">".$val."</".$key.">";
}
}
$xml.="</QueryCondition></$type>";
return $xml;
}
```php
function xml($xml){
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
$data = "";
foreach ($index as $key=>$value) {
if($key == 'xml' || $key == 'XML') continue;
$tag = $vals[$value[0]]['tag'];
$value = $vals[$value[0]]['value'];
$data[$tag] = $value;
}
return $data;
}