php – 使用 CURL 取得遠端 XML 後,透過 simplexml_load_string 發生空白的問題

最近實作 CURL 取得別家廠商的遠端伺服器,得到的格式是 XML ,一般而言我習慣轉換成物件或陣列,通常使用 simplexml_load_string() 就可以輕易取得。

$result = curl(); // (略過)透過 CURL 成功取得的 xml
$xml = simplexml_load_string($result);
print_r($xml); // 這裡發現是空的

後來花了一些時間做字串轉換如 str_replace() ,都沒有效。後來轉換了編碼就成功了,可能是遠端錯誤訊息的衝文產生亂碼所影響。所以修改成以下方式

$result = curl(); // (略過)透過 CURL 成功取得的 xml
$convert = mb_convert_encoding($result, "UTF-8", "big5"); // 將原來的 big5 轉換成 UTF-8
$obj = simplexml_load_string($convert);
print_r($obj); // 這樣就成功變為物件了

 

 

發表迴響