• ベストアンサー

他のサーバーのファイルを大量に読み込んだら迷惑?

 他のサーバーにアクセスして、大量の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();で何秒か停止すれば迷惑かけずに済むでしょうか? もしそうなら、大体何秒くらいでしょうか?

noname#82539
noname#82539
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
回答No.1

どのレベルで迷惑か、と言うのは難しいですね。 最近は検索ロボットがキャッシュしまくってます。 中国の百度のロボットなんかは評判悪いですね。 1分間に1つのページ程度ならまず問題無いと思いますので、sleepで停止するよりはcronで1分毎にアクセスするのが良いかと。 相手のページが静的ページならサーバ負荷は大した事無いかもしれませんが、CGIやPHP等のプログラム&DBだとアクセス数が増えるとサーバ負荷も馬鹿になりません(個人的にはロボットからのXOOPSアクセスで最近パフォーマンスが落ちまくって困っています)。Yahoo等の大規模サイトならあまり気にする必要はなさそうですが、その辺の配慮もしてやれば問題が少ないでしょう。 参考まで。

noname#82539
質問者

お礼

 ご回答ありがとうございます。  再質問失礼しますが、 >1分間に1つのページ程度  というのは、cgiなどを使っているサイトについてのみのことでしょうか? それとも、静的ページについても、それぐらいはするべきということでしょうか?  できれば時間指定で行うのではない方が良いので、もしcgiのみについてのことであれば、cgiの読み取りを禁止して、htmlのみ読み取るようにしたいと考えています。

その他の回答 (1)

  • maura
  • ベストアンサー率46% (48/104)
回答No.2

他のサーバーにとって迷惑でもなんでもないと思います。 たったの数十回だし。

noname#82539
質問者

お礼

 ご回答ありがとうございます。大した迷惑でもないのですね。

関連するQ&A

  • 所有権root、600のファイルを読み書きしたいのですが…。

    所有権がrootでバーミッションが600のファイル (例えば、パスワードファイルなど) をPHPを使ってwebから読んだり書いたりしたいのですが、 どのようにしたら出来ますでしょうか? 例えば、次のようなコードです。 <?php $fp = fopen("/etc/shadow", "r"); while (!feof($fp)){ $line = fgets($fp, 4096); } fclose($fp); ?>

    • ベストアンサー
    • PHP
  • ファイルを読み込み一部を書き換え

    ファイルを読み込み一部を書き換えたいです。 a.phpを読み込み$newという配列渡し、abcという文字があったら $dataのbbbに書き換えたいのですうまくいきません。 $data = "bbb"; $handle = @fopen("a.php", "r+"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); $new = ereg_replace("abc", $data, $new); fwrite($fp,$new); } } fclose($handle); 助言お願いします。

    • ベストアンサー
    • PHP
  • 他サーバのテキストへの書き込みができません。

    サーバから別のサーバへ書き込みがしたいのですが、 ファイルを読み込むことができません。ソースは以下になります。アクセス権限なども設定しているのですが、他にどういった問題が考えられるでしょうか? $accesstxt = "http://www.ecstee.jp/rss/login_log.txt"; $fp = fopen($accesstxt,'a'); fwrite($fp,$url.",".$time.","); fclose($fp); どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • fscanf()

    fcanf()がうまくいきません。 画面には、42640888のような数値が表示されます。 どこが間違ってるか教えてください。 (test.txtに23と書いてあるとします。) #include<stdio.h> int main(void) {    FILE *fp;    FILE *fp1;    char str[10];    int a;    fp=fopen("test.txt","r")    fp1=fopen("a.txt","w")    while(!feof(fp)){       fgets(str,8,fp);       fputs(str,fp1);    }    fscanf(fp,"%d",&a);    printf("%d",a);   fclose(fp);   fclose(fp1);   return 0; }

  • C言語のfeof関数について質問

    以下のようなプログラムを作り、116バイトのファイルのサイズを取得 しようとしているのですが、なぜか100バイトまで読み込んだところで、 feofが真を返し、whileループを抜けてしまいます。 どなたか、原因がわかる方は教えてください。 if((fp = fopen(filename,"r"))==NULL) return; count = 0; while(!feof(fp)){ fgetc(fp); if(ferror(fp)) return; count++ ; } fclose(fp);

  • C言語、ファイル操作、fgets()について

    次のプログラムは入力された行を読み込み、コマンドラインで指定されたファイルに書き込みます。 空白行が入力されたら、入力の終了とみなしてファイルを閉じます。続いてファイルを入力用に開き、 fgets()を使ってファイルの内容を表示するものです。 (ソースコードが長くてすみません) #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { FILE *fp; char str[80]; /* コマンドライン引数を検査する */ if(argc!=2) { printf("ファイル名を指定してください\n"); exit(1); } /* 出力用にファイルを開く */ if((fp = fopen(argv[1], "w"))==NULL) { printf("ファイルを開くことができません\n"); exit(1); } printf("終了するには空白行を入力してください\n"); do { printf(": "); gets(str); strcat(str, "\n"); /* 改行を追加する */ if(*str != '\n') fputs(str, fp); } while(*str != '\n'); fclose(fp); /* 入力用にファイルを開く */ if((fp = fopen(argv[1], "r"))==NULL) { printf("ファイルを開くことができません\n"); exit(1); } /* ファイルを読み込み直す */ do { fgets(str, 79, fp); if(!feof(fp)) printf(str); } while(!feof(fp)); fclose(fp); return 0; } 【質問】fgets()内のint型の数値「79」がどうして79なのかが分かりません。     80でも良いような気がするのですが・・・

  • TSVファイルを読み込んで表示したい

    $file="sample.txt"; // 変換対象TSVファイル $fpw = fopen($file,'r'); while (!feof($fpw)) {   $data = fgets($fpw));   $line = explode("\t", $data);   print "line= ".$line[0]."<br>";   print "line= ".$line[1]."<br>"; } としましたがうまく内容が表示されません。 どのようにしたら良いでしょうか?

    • ベストアンサー
    • PHP
  • ファイルを開いたままオープンモードを変更したい

    $fp = fopen ($file, "r"); flock ($fp, 2); で開いたファイルをロックを解除しないままファイルを空にして書き込みモードに移行する方法を教えてください。 或いは $fp = fopen ($file, "r+"); flock ($fp, 2); からfputs()で書き込んだ後にファイルのファイルポインタ以降の部分を切り捨てる形でも良いです。 flock ($fp, 2);の後にfgetsによりファイル内容を取得した後ファイルロックをしたままファイルの余計な部分を捨てたいので $fp = fopen ($file, "w"); flock ($fp, 2); や $fp = fopen ($file, "r"); flock ($fp, 2); fgets ($fp); flock ($fp, 3); fclose ($fp); $fp = fopen ($file, "w"); flock ($fp, 2); は必要ありません。

    • ベストアンサー
    • PHP
  • 古くなったファイルを削除するには?

    あるファイルを読み込んで、その中に書かれたファイル名の中で10日以上、経過したファイルを削除するphpを作ろうとしています。 index.htmlまで削除してしまうとフォルダの中が他人に除かれてしまうおそれがあるので、index.htmlは10日以上経過してもそのまま残しておきたいと思っています。 初心者なりにいろいろな本やphpの礼を参考にしながら下記のphpを作ってみました。 試してみるとindex.htmlまだ削除されていました・・・・ どこにミスがあったのでしょうか? 教えて頂ければ幸いです。 ---------------------------------------------------------------------- // ファイルを読み込み専用でオープンする $fp = fopen('dir.txt', 'r'); // 終端に達するまでループ while (!feof($fp)) { // ファイルから一行読み込む $line = fgets($fp); $line = rtrim($line); // ファイルの更新時間を調べる $kousin = filemtime("$line"); // 今の時刻 $ima = time(); // 経過時間を計算する $keika = $ima - $kousin; // 出力する // print $line; // print "<br>\n"; // print $kousin; // print "<br>\n"; // print $keika; // print "<br>\n"; clearstatcache(); if ( $keika > 864000 && $line != index.html ) { @unlink( "$line" ); } } // ファイルをクローズする fclose($fp);

    • ベストアンサー
    • PHP
  • phpでテキストファイルの特定のワードを抽出

    タイトルの通りです。 phpを使い、テキストファイルの中に書かれている文字列をhtmlに表示することはできました。 <?php //ファイルを開く //モード[r]の読み込み専用 if (! ($fp = fopen ( "list.txt", "r" ))) { echo "ファイルが開けません。"; } while (! feof ($fp)) { $load = fgets ($fp, 4096); echo $load; } ?> このような感じです。 ですが、テキストファイルの中の特定の文字(例:美しい)を抽出したいのですが、どのようにプログラムを書いて良いかわかりません。 どなたかアドバイスをお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう