0

重複の可能性:
PHPを使用してリモートファイルが存在するかどうかを確認するにはどうすればよいですか?

ウェブサイトが公開されているかどうかをプログラムで確認したいと思います。「cURL」または「fopen」を使用してURLを開くことでこれを実行できることはわかっていますが、ページ全体をフェッチする必要があるため、時間がかかります。

さらに、サポートされていないプロトコルがWebサイトを開くことができるなど、他の理由がある可能性があるため、この方法は信頼できません。

他に方法はありますか?

4

4 に答える 4

3

HEADリクエストを使用するだけで、ページ全体ではなく、ページのヘッダーのみを取得できます。それでも、Webサイトはページ全体を生成しますが、少なくともすべてをダウンロードするわけではありません。

これを実現するには、多くのメソッドを使用できます。リクエストのヘッダーを変更する方法を確認するだけで、GETを実行する代わりに、HEADを実行できます。

于 2012-07-17T19:12:22.547 に答える
1

fopen()fread()また、Webページ全体を読まないでください(とにかく必ずしもそうとは限りません)。これを使用して、数バイトだけを読み取って、Webサイトが存在するかどうかを判断できます(200 OK)。

于 2012-07-17T19:12:03.037 に答える
0

ヘッダーリクエストを送信してhttp応答コードを確認するだけでいいですか?

于 2012-07-17T19:11:26.447 に答える
0
$file = 'http://www.test.com/idontexist.jpg';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
    $exists = false;
}
else {
    $exists = true;
}
于 2012-07-17T19:12:28.980 に答える