PHP通過XML報文方式,已第三方介面互動(發送xml,擷取XML,並解析xml步驟)

來源:互聯網
上載者:User

標籤:string   ade   echo   pos   並且   對象   開發   接收   eal   

  

 

開發人員端:發送請求,並接收結果

<?php//  下面的demo,實現的功能如下://   1-開發人員需要判斷一個使用者是否存在,去請求第三方介面。//   2-與第三方介面的通訊,是以xml格式傳送資料。開發人員把使用者資訊以xml格式發送給第三方介面//   3-第三方介面擷取開發人員的xml資料,通過資料的查詢,把結果再以xml的格式發送給開發人員。//首先檢測是否支援curlif (!extension_loaded("curl")) {    trigger_error("對不起,請開啟curl功能模組!", E_USER_ERROR);}//構造xml$xmldata="<?xml version=‘1.0‘ encoding=‘UTF-8‘?><group><name>張三</name><age>22</age></group>";//初始一個curl會話$curl = curl_init();//設定urlcurl_setopt($curl, CURLOPT_URL,"http://localhost/demo/dealxml.php");//設定發送方式:postcurl_setopt($curl, CURLOPT_POST, true);//設定發送資料curl_setopt($curl, CURLOPT_POSTFIELDS, $xmldata);//TRUE 將curl_exec()擷取的資訊以字串返回,而不是直接輸出curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);//執行cURL會話 ( 返回的資料為xml )$return_xml = curl_exec($curl);//關閉cURL資源,並且釋放系統資源curl_close($curl);//echo $return_xml;//exit;//禁止引用外部xml實體libxml_disable_entity_loader(true);//先把xml轉換為simplexml對象,再把simplexml對象轉換成 json,再將 json 轉換成數組。$value_array = json_decode(json_encode(simplexml_load_string($return_xml, ‘SimpleXMLElement‘, LIBXML_NOCDATA)), true);echo "<pre>";print_r($value_array);?>

 

第三方介面端:接收請求,並返回處理結果

<?php//接收傳送的資料$fileContent = file_get_contents("php://input"); ### 把xml轉換為數組//禁止引用外部xml實體libxml_disable_entity_loader(true);//先把xml轉換為simplexml對象,再把simplexml對象轉換成 json,再將 json 轉換成數組。$value_array = json_decode(json_encode(simplexml_load_string($fileContent, ‘SimpleXMLElement‘, LIBXML_NOCDATA)), true);### 擷取值,進行業務處理$name = $value_array[‘name‘];$age = $value_array[‘age‘];// 通過查詢,判斷該使用者是否存在### 把查詢結果添加到數組中$value_array[‘result‘] = 1;### 把數群組轉換為xml格式,返回$xml = "<?xml version=‘1.0‘ encoding=‘UTF-8‘?><group>";foreach ($value_array as $key=>$val){    if (is_numeric($val)){        $xml.="<".$key.">".$val."</".$key.">";    }else{        $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";    }}$xml.="</group>";echo $xml;?>

 

PHP通過XML報文方式,已第三方介面互動(發送xml,擷取XML,並解析xml步驟)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.