またしても、みはら(@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:SimpleHotelSearch>っていうのがあって、この中のコロンがよろしくないとのことなんです。なので、こんな風にしてコロンを無くしてやるとうまくいきます。
[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になるんじゃないかと願っています。