40pt
一旦file_get_contents()でデータをダウンロードした後で、
simplexml_load_file()で変換したらどうなりますか?
http://jp.php.net/manual/ja/function.simplexml-load-string.php
30pt
#1のコードが間違っていますね。
まず、下記を実行したときの結果をお知らせください。
$aaaa = file_get_contents($url); $xml= simplexml_load_string($aaaa); print_r($xml);
次に、phpinfo() 関数を実行すると SimpleXML のパラメータが表示されるはずです。
Revision の値と Schema support が enable になっているかどうかお知らせください。
最後に、XAMPP のバージョンをお知らせください。
OS は WindowsXP でのご利用ですか?
#1のコメントでも書きましたが、echo($aaaa);で何も出力されませんでした。
おっしゃるような方法(simplexml_load_string()関数)を試してみましたが結果も同じです。
まだ詳しく調査していないのですが$urlのパラメータ部分の生成に使用しているhttp_build_query()関数の影響みたいです。
とりあえずhttp_build_query()を使用しないで書いたらうまくいっています。
$Revision: 1.151.2.22.2.35 $ enableになってました。
xamppのversionは 1.6.6aです。
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity " <ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:srch" xsi:schemaLocation="urn:yahoo:jp:srch http://api.search.yahoo.co.jp/WebSearchService/V1/WebSearchResponse.xsd" totalResultsAvailable="0" totalResultsReturned="0" firstResultPosition="1" pgr="0"></ResultSet> "
このようなエラーが返ってきました。
記述したのは以下のコードです。
$aaaa = file_get_contents($url);
$xml= simplexml_load_file($aaaa);
echo($aaaa);は何も出力しません
ちなみにサーバーはローカル環境のWebサーバーです(xampp)
追記:よくわからないのですが
$aaaa = file_get_contents("http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appi...******&query=%E3%81%82&start=1&results=10");
echo($aaaa);
とやると取得データが表示されます…
追記の追記:解決策はありましたがよくわかりません
$urlをhttp_build_query()関数で生成していたのですが
$url1='http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch'
$url1.='?'.http_build_query(パラメータの配列);
$url2="パラメータまで直打ち"
echo($url1);と
echo($url2)の表示はまったく同じなのに
file_get_contentsで取得できるのは$url2だけでした。