XMLの取り扱い
APIを色々いじっている最近ですが、ついにXMLに出会いました。
JSONと勝手が違い躓いてしまったんで、記しておく。
1. file_get_contentsではなくcurlを使う。
htmlheaderにアクセストークンを仕込んでJSONと同じようにfile_get_contentsで一発だぜと思っていたのですが、どうしてもうまくいかない。curlを使って解決。
$url = 'https://product-search.api.cj.com/v2/product-search?'.
'&keywords='. rawurlencode($_GET['keywords']);
$curl = curl_init($url); // 初期化
$options = array(
//HEADER
CURLOPT_HTTPHEADER => array(
"Authorization: トークン",
),
//Method
CURLOPT_HTTPGET => true,//GET
);
//set options
curl_setopt_array($curl, $options); /// オプション値を設定
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);$result = curl_exec($curl); // リクエスト実行
$result2 = simplexml_load_string($result);
2. XML Objectを配列にパースする
ここで、$resultには、XML Objectという形でデータが入っています。foreachで値を取り出せるかなと思いきや、ダメでした。JSONを経由させて配列にかえます。
$json = json_encode($result2);
$array = json_decode($json,TRUE);
これで配列になりました。もーみんなJSONでいいじゃん。。