[PHP]simplexml_load_fileについての質問です。


simplexml_load_fileを利用してXMLをパースしていますが、&quotが入っているとエラーメッセージから読み取れますが、URL文字列内に"は利用されていません。

【ソース抜粋】
$gotten_items = simplexml_load_file('http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=XXXXXXX&start=1&query=XXXX');
var_dump($gotten_items);

と入力すると、Apacheのerror_logに以下のようなエラーが表示されます。

【error_log抜粋】
[Mon Jun 25 23:05:57 2007] [error] [client XXX.XXX.XXX.XXX] PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: I/O warning : failed to load external entity &quot;http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=XXXXXXX&start=1&query=XXXXXX&quot; in XXXX

【実行方法による違い】
・コマンドラインから実行すると正しくされます。Apache経由(ブラウザー)の場合のみ上記エラーが表示されます。
・同一ソースについて、Fodora Core 5の別環境で動作させたところ、そちらのサーバーでは動作しました。
 XMLのURL自体が不正であることはないことは確認しております。こういった事象の解決方法をご教授いただければと思います。

【環境】
Fodora Core 5
httpd-2.2.2-1.2
php-5.1.6-1.6

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/06/27 02:56:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:t_shiono No.1

回答回数256ベストアンサー獲得回数22

ポイント60pt

同様の構成の別サーバで動作することを考えると、PHPのプログラム的には問題ないのだと思います。

となると、phpまたはサーバの設定によって対象データが取得できないのではないかと思います。具体的には、php.iniの設定(そんな設定があるか未確認です)や、SELinuxが動作していれば、その辺りではないかと思います。

そこで、次のURLのような感じで、まずは、該当データをapacheにアクセスした際のPHPから取得できるかを確認してはいかがでしょうか?

http://q.hatena.ne.jp/1180553984

もし、この方法で動けば、とりあえずの対処法にもつながると思いますので。

明確な回答ではありませんが、何かの参考になれば。

id:shinomichi

SELinuxが動作していました。

解決しました。ありがとうございました。

2007/06/26 02:24:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません