關於curl的那些事兒

   由於我平時的工作,大部分都是與不同平臺進行交互,所以curl就這樣進入到我的工作中。

   curl很博大精深,需要仔細研讀,但是每每的都是用到那一些,所以每每遇到問題,都要查幫助手冊的啊,我暫且把工作中遇到的問題先羅列一下:

   1、關於json格式交互的需要注意一點:

                     $header[] = 'Content-type:application/json';
curl_setopt($ch, CURLOPT_URL, $remote_server);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonstr);

  2、關於GET不到內容的問題

       一般獲取不到內容,是因爲你訪問的頁面進行了跳轉,所以需要進行設置一下

                       curl_setopt($curl_obj, CURLOPT_FOLLOWLOCATION ,1); //加入重定向處理


3、關於頁面編碼的問題

                        $header[] = "Content-Type: text/xml; charset=UTF-8";


             暫且如此,有時也不能太思維定勢,要思路開闊。

4、關於接收到xml格式字符串的問題

   對於curl get過來的內容xml格式,如果要獲取節點的內容,那麼最好用simplexml_load_string()函數,比如說

   $xml = simplexml_load_string($response);

   $obj_submiturl = $xml->Order->Submit0->ButtonTag->SubmitUrl;

   $submiturl = '';

   foreach ($obj_submiturl as $v){

$submiturl = $v;

unset($v);

    }


   不過對於最後一層,我還是沒弄明白的,爲啥獲取最後一個節點不是值,而是一個對象呢,需要再遍歷一下,有誰可以解釋一下的?

   數據如下:

object(SimpleXMLElement)#2 (2) {

  ["ResultCode"]=>

  string(3) "200"

  ["Order"]=>

  object(SimpleXMLElement)#1 (1) {

    ["Submit0"]=>

    object(SimpleXMLElement)#4 (1) {

      ["ButtonTag"]=>

      object(SimpleXMLElement)#5 (1) {

        ["SubmitUrl"]=>

        string(302) "http:"

      }

    }

  }

}



object(SimpleXMLElement)#1 (1) {

  [0]=>

  string(302) "http:"

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章