学生のみなさん!確定申告するとアルバイト代の税金が戻ってくるよ!

[み]楽天APIで、PHPのsimplexml_load_stringを使う時は、コロンに要注意

またしても、みはら(@masashi_385)のメモ用記事です。ほとんどの方にはまったく興味もわかないような内容です。でも、Google先生に導かれてここにいらっしゃった方には、とても「いいね!」って気分になると思います。みはらがそうでしたから。

例えば、こんな風にすると思います。
[cc lang=”php”] $url = ‘http://api.rakuten.co.jp/rws/3.0/rest?……………;
$data = file_get_contents($url);
$xml = simplexml_load_string($data);
[/cc] これで、中身を確認すると、空っぽです。何が原因かというと、返ってきたものの中に楽天トラベルのAPIであれば、<SimpleHotelSearch&#058SimpleHotelSearch>っていうのがあって、この中のコロンがよろしくないとのことなんです。なので、こんな風にしてコロンを無くしてやるとうまくいきます。
[cc lang=”php”] $url = ‘http://api.rakuten.co.jp/rws/3.0/rest?……………;
$data = file_get_contents($url);
$data = str_replace(‘SimpleHotelSearch:SimpleHotelSearch’, ‘SimpleHotelSearch’, $data);
$xml = simplexml_load_string($data);
[/cc] で、楽天の商品検索APIだったら、こうです。
[cc lang=”php”] $data = str_replace(‘itemSearch:ItemSearch’, ‘ItemSearch’, $data);
[/cc] 要は、返ってきているもののなかにコロンがいたら、うまくパースできないってことみたいなので、コロンがついてるヤツがあれば、置き換えてやればいいってことだそうです。

ちなみに、こんなのもあります。
[cc lang=”php”] $url = ‘http://api.rakuten.co.jp/rws/3.0/rest?……………;
$data = preg_replace(‘/:/’,’_’,file_get_contents($url));
$xml = simplexml_load_string($data);
[/cc] コロンを最初に全部置き換えてしまう方法です。PHPってなんかいろんなやり方があるんですね。といっても、Google先生に聞いてるだけなので、知識が断片的すぎるんですよね。だから、ものすごく基本的なこととか、ほとんどわかってません… 最終的に形をつくれているから、まぁいいかなと思うことにしています。きっと、そのうち点が線になっていずれ3Dになるんじゃないかと願っています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です