• 締切済み

クロールしたときのエラー対処について

これまで同じプログラムで稼動していたのに、つい最近動かしたら下記エラーが出てしまいました、、 Warning: fopen(http://www.AAA.jp/ここはパラメータが入ってます。) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\xampp\htdocs\phpget\get2.php on line 4 line 4 に記述されているもの ↓ function getURL( $pURL ) { $_data = null; if( $_http = fopen( $pURL, "r" ) ) {   ←ここが4行目 while( !feof( $_http ) ) { $_data .= fgets( $_http, 1024 ); } fclose( $_http ); } return( $_data ); } これは、クロール先のサーバ側が何らかの設定変更によるものでしょうか? こちらで対処できる方法があれば教えていただきたく よろしくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

PHPのサーバーからアクセスできているのかまずチェック ポート80経由でtelnetするなりwgetなりで接続チェックしてみてください 単純に外のサーバーを見にいけないだけならyahooあたりに接続チェック するだけでも切り分けになります。 また接続が確保されているとして クロール相手のサーバーがブラウザを見て挙動を変えているのであれば ユーザーエージェントなどでブラウザの偽装ヘッダーを 流してみてはどうでしょう?

anan19
質問者

補足

yahooに接続してページ取得できたことは確認できました。 偽装ヘッダーは実装してなかったですね。。。 また調べてみます。 ご指摘ありがとうございます。

回答No.1

http://ja.wikipedia.org/wiki/HTTP%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89#5xx_Server_Error_.E3.82.B5.E3.83.BC.E3.83.90.E3.82.A8.E3.83.A9.E3.83.BC あっち側のサーバ問題のようですが、接続先がブラウザなどでもちゃんと 確認できるか見た方が早くないですか?

anan19
質問者

補足

ご指摘ありがとうございます。 IEやFFのブラウザで表示は正しくされてます。 phpのプログラム経由でアクセスすると このエラーになってしまう状況です。 以前、正しく稼動したURL先を久々にアクセスしたら このようなエラーになってしまった。。という状況です。。

関連するQ&A