• 締切済み

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

これまで同じプログラムで稼動していたのに、つい最近動かしたら下記エラーが出てしまいました、、 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 ); } これは、クロール先のサーバ側が何らかの設定変更によるものでしょうか? こちらで対処できる方法があれば教えていただきたく よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • 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

  • fgets()でURLを読み込むとエラーになる

    -----url.txt----- http://www.google.co.jp http://www.goo.ne.jp/ ----------------- -----test.php------ $urltxt = fopen("url.txt", "r"); $url = fgets($urltxt); $html = fopen($url, "r"); -------------------- のように、各行にURLが書いてあるテキストファイルを一行ずつ読み込んで、それを引数にしてfopen()したところ、 全てfailed to open stream: HTTP request failed! HTTP/1.0 404 Not Foundとなってしまいます。 print($url)では正しくURLが出力されますし、$urlへの代入を直接$url = "http://www.goo.ne.jp/"としてやれば正常に動作するので、何が原因か分かりません。 テキストファイルは全て半角英数のアドレスのみで、シフトJISで保存しています。 どなたか原因が分かる方、ご教授ください。

    • ベストアンサー
    • PHP
  • 他のサーバーのファイルを大量に読み込んだら迷惑?

     他のサーバーにアクセスして、大量のhtmlファイルを開き、fgets()でそれらを読み込んだら、相手方のサーバーには迷惑になるでしょうか?  (以下のような感じです。URLの部分は、hを大文字で記述しています) <?php $fp = fopen("http://somewhere.org/page1.html","r"); while(!feof()){ $line = fgets($fp); fwrite($fp,$line); } fclose(); $fp = fopen("http://somewhere.org/page2.html","r"); while(!feof()){ $line = fgets($fp); fwrite($fp,$line); } fclose(); //・・・これを数十回くらい。 ?>  又、迷惑になる場合、ファイルを1つ読み込んだあと、sleep();で何秒か停止すれば迷惑かけずに済むでしょうか? もしそうなら、大体何秒くらいでしょうか?

    • ベストアンサー
    • PHP
  • XAMPPインストール後「セキュリティ」でエラー

    XAMPPをローカル上で試していたのですが、インストール完了後に「セキュリティ」をクリックすると下記のようなアラートが表示されます。 Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\XAMPP\security\htdocs\index.php on line 13 Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\Program Files\XAMPP\php\pear\') in C:\Program Files\XAMPP\security\htdocs\index.php on line 13 このアラートの回避方法をお教えください。 何卒宜しくお願い致します。

  • サーバーにPHPを拒否されてしまう

    無料HPでPHPの練習をしている初心者です。 PHPファイルをサーバーにアップしてブラウザでみてみると・・・ ------------------------------------------------------------- 今日は、2008/07/26 です☆ Warning: fopen() [function.fopen]: Unable to access count.txt in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fopen(count.txt) [function.fopen]: failed to open stream: No such file or directory in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fgets(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 20 Warning: fseek(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 22 Warning: fputs(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 23 Warning: fclose(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 24 あなたは 1 人目のお客様です。 -------------------------------------------------------------- このような警告ばかりでて、PHPのコマンドが働いていないようなのです。日付は表示されますし、お客様の人数も一応1となっていますが、TOPへ戻ってから再度きても1人なのです。だから働いていないと思うのです。どうしたらPHPのコマンドを受け入れてもらえますか?無料HP、PHP可のところでは無理なのでしょうか? お願いします!

    • ベストアンサー
    • PHP
  • fopenでURL内容の取得のエラー

    fopen(<URLを指定>,'r'); としたときにエラーが発生してしまいます。 この現象は環境によって出る場合と出ない場合があります。 以下はいずれもphpinfo()で取得したPHPとApacheのバージョンです。 <エラーが出ない環境> PHP Version 4.2.3 Apache/1.3.27 <エラーが出る環境> PHP Version 4.3.9 Apache/1.3.31 (Win32) PHP/4.3.9 エラーメッセージは以下のようなものです。 Warning: fopen(<ここにアクセスしたURLが表示>): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in <エラーが出ているプログラムと、fopen()の行が表示> よろしくお願い致します。

    • 締切済み
    • PHP
  • PHP requireでのURLパラメータ指定

    PHPにてアクセスカウンターを作っているのですが、呼び出したときのパラメータにて合計カウント数、本日のカウント数、昨日のカウント数のどれを表示するのか分けるプログラムを作成しました。 直接アドレスバーにて、 http://localhost/counter/count.php?mode=total とパラメータ指定したときにはきちんと表示出来るのですが、他のPHPファイルから require ("./count.php?mode=total"); で呼び出すと、 Warning: require(./count.php?mode=total) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\counter\index.php on line 7 Fatal error: require() [function.require]: Failed opening required './count.php?mode=total' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\counter\index.php on line 7 というエラーが出てしまいます。 色々調べたところ、相対パス指定のときにはパラメータ指定が出来ないという情報があったので、絶対パスで指定してみたのですが、やはり上手くいきません。 Warning: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0 in C:\xampp\htdocs\counter\index.php on line 7 Warning: require(http://localhost/counter/count.php?mode=total) [function.require]: failed to open stream: no suitable wrapper could be found in C:\xampp\htdocs\counter\index.php on line 7 Fatal error: require() [function.require]: Failed opening required 'http://localhost/counter/count.php?mode=total' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\counter\index.php on line 7 というようにエラーが出てしまいます。 どのようにすれば上手く表示できるでしょうか? 是非回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのアンケートフォーム作成での疑問です

    はじめまして、 PHP初心者です。今テキストを見ながら独学で勉強をしているものですが、 アンケートフォームの集計結果を(テキスト)読み込むための作業をしようとしたら こういうメッセージがでてきました。 /log/log.txt) [function.fopen]: failed to open stream: No error in C:\xampp\htdocs\php\question2.php on line 126 ファイルがないか異常があります 何度も確認をしましたがコードのミスはないはずなんですが、サーバーなどの問題でしょうか? どういうふうに解決をすればよいでしょうか? アドバイス待ってます

    • ベストアンサー
    • PHP
  • XAMPPの設定

    XAMPPの設定画面で、MySQLのパスワード設定で(localhost/xampp/)、メニューのsecurityをクリックしてセキュリティー画面に入ったんですけど画面が表示されません .Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13 .Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\php5\pear') in C:\xampp\security\htdocs\index.php on line 13 エラーがでます。どうしたらいいのでしょうか?

    • 締切済み
    • PHP
  • XAMPP セキュリティ設定ページにアクセスできない

    XAMPPをインストール後、セキュリティ設定ページにアクセスできません Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13 Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\security\htdocs\index.php on line 13 と出ます。どうしたらいいですかねぇ??

  • HTMLソースの取得

    現在,wikipedeaの解析を行っています. wikipedeaの履歴のソースコードをf取得したいのですが,以下のようなエラーが出て取得できません. <エラー> Warning: fopen(http://ja.wikipedia.org/w/index.php?title=%E3%82%A2%E3%83%8B%E3%83%A1&action=history") [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in… 何かいい方法はないでしょうか. よろしくお願いします.

    • ベストアンサー
    • PHP

専門家に質問してみよう