• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XMLのロードに失敗する)

XMLのロードに失敗する

このQ&Aのポイント
  • PHP5のsimplexml_load_fileを使って、RSS(XML)を読み込もうとする際に、一部のサイトでロードに失敗する現象が発生しています。
  • ローカル環境や一部のレンタルサーバでは問題なく読み込むことができますが、レンタルサーバAやCでは毎日新聞のRSSのみ読み込めず、エラーメッセージが表示されます。
  • この問題は設置環境の影響や読み込み対象の絞り込みが考えられますが、具体的な解決方法や原因特定には至っていません。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

ANo.2です >取り回しが楽なのでsimplexml_load_fileがよいので file_get_contentsとsimplexml_load_stringを組み合わせて使えば「どちらでエラーになるのか」で、そもそも読めない状態なのか読み込んだデータ形式がおかしいのかの判断は出来ると思います。当面はそうやって問題の切り分けを行ってみてはどうでしょう。

sarusearch
質問者

お礼

ありがとうございます。 ご指摘の通り、試したところ、うまく読み込めてしまいました。 以下のコードを並べて記述してみましたがsimplexml_load_fileではやはり何も出力されなかったので何らかのsimplexml_load_fileの仕様が毎日新聞のRSS と影響しているようでした。 $source = file_get_contents('http://mainichi.jp/rss/etc/flash.rss'); $data = simplexml_load_string($source); #表示される $rss = "http://mainichi.jp/rss/etc/flash.rss"; $data = simplexml_load_file($rss); #表示されない いずれにせよ、ひとまずこれで乗り切ろうかと思います。 ありがとうございます。

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

#可能であれば各サーバのphpのバージョンを #併記していただくとありがたいのですが(汗 simplexml_load_fileでなく、fileやfile_get_contentsだと取得出来ますか?simplexml_load_file自体はバージョンによってさほどの違いがなかったように記憶していますので、そもそも当該サーバ(のIPアドレス)からのアクセス自体が制限されている可能性が否定出来ません。

sarusearch
質問者

お礼

何度もすみません。 動作確認でサーバAを試したところサーバAをのみやはり毎日新聞のRSS(http://mainichi.jp/rss/etc/flash.rss)のみ出力されませんでした。 ご指摘いただいたとおりfile_get_contentsを試したところ、毎日新聞のRSSを取得することができてしまいました。取り回しが楽なのでsimplexml_load_fileがよいので どうもサーバAと毎日新聞、simplexml_load_fileの3つの組み合わせがキーのようですが他のRSSも読み込んでより切り分けを進めてみたいと思います。

sarusearch
質問者

補足

ありがとうございます。数日おいたところ何も変えないままちょっと現在動作してしまっているのでまたご報告しますがひとまずバージョンについて一応記載します。 サーバA PHP Version 5.3.3 ローカル PHP Version 5.3.3 サーバB PHP Version 5.2.17 サーバC PHP Version 5.2.11

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

読売新聞だと、403になりますね。毎日新聞のだとどうなるかを補足したら回答が得られやすいかも。 > Warning: simplexml_load_file(http://rss.yomiuri.co.jp)

sarusearch
質問者

補足

ご指摘ありがとうございます。 誤記しておりました。http://rss.yomiuri.co.jp/rss/yol/topstories改めてアクセスしてみたところRSSが表示されました。 またRSSページを直接開いた時に以前は直接XMLが開けなかったので何らかの仕様が変わった可能性があります。 もうちょっと動作確認の後お礼とさせてください

関連するQ&A