ホームページ  >  記事  >  バックエンド開発  >  PHP で get_headers 関数を使用してリモート ファイルが存在するかどうかを確認する方法、_PHP チュートリアル

PHP で get_headers 関数を使用してリモート ファイルが存在するかどうかを確認する方法、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:51874ブラウズ

PHP は get_headers 関数を使用してリモート ファイルが存在するかどうかを判断します。

この記事の例では、PHP が get_headers 関数を使用してリモート ファイルが存在するかどうかを判断する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです

PHP でリモート ファイルが存在するかどうかを確認するプロセスに関する以前の記事は、すべて fopen、sockt、curl 関数を使用してリモート ファイルが存在するかどうかを確認する方法を紹介します。それ。 。

まず get_headers() 関数について簡単に理解しましょう

get_headers() は、HTTP リクエストに応じてサーバーから送信されたヘッダーを含む配列 m を返します。

get_headers: HTTP リクエストに対するサーバー応答を送信します

get_headers(文字列URL[リンク形式])

get_headers() は、サーバーの HTTP リクエスト m を配列の形式で返します。実行が失敗すると、FALSE とエラー レベル E_WARNING が返されます。

オプションのパラメータは 1 に設定され、get_headers() はシステムの応答速度と設定された配列内のキーを分析できます。

注: この関数を使用するには、php.ini でallow_url_fopen = On に設定する必要があります

サンプルコードは次のとおりです:


コードをコピーします コードは次のとおりです: $url = 'http://www.bkjia.com'; print_r(get_headers($url)); print_r(get_headers($url, 1)); ?>

実行結果は以下の通りです:


コードをコピーします

コードは次のとおりです:
配列 ( [0] => HTTP/1.1 200 OK [1] => キャッシュ制御: max-age=1800
[2] => コンテンツの長さ: 54874
[3] => コンテンツタイプ: text/html
[4] => コンテンツの場所: http://www.bkjia.com/index.htm
[5] => 最終更新日: 2014 年 11 月 28 日金曜日 03:34:56 GMT
[6] => 許容範囲: バイト
[7] => Eタグ: "b66ba847bcad01:bc5"
[8] => サーバー: Microsoft-IIS/6.0
[9] => 日付: 2014 年 11 月 28 日金曜日 03:37:34 GMT
[10] => 接続: 閉じる
)
配列
(
[0] => HTTP/1.1 200 OK
[キャッシュ制御] => max-age=1800
[コンテンツの長さ] => 54874
[Content-Type] => text/html
[コンテンツの場所] => http://www.bkjia.com/index.htm
[Last-Modified] => Fri, 28 Nov 2014 03:34:56 GMT
[Accept-Ranges] => バイト
[ETag] =>「b66ba847bcad01:bc5」
[サーバー] => Microsoft-IIS/6.0
[日付] => 2014 年 11 月 28 日金曜日 03:37:35 GMT
[接続] =>閉じる
)

リモートファイルが存在するかどうかを判断するコードは次のとおりです:


コードをコピーします

コードは次のとおりです:
//リモートファイルが存在するかどうかを確認します 関数リモートファイル_exists($url) { $executeTime = ini_get('max_execution_time'); ini_set('最大実行時間', 0); $headers = @get_headers($url); ini_set('max_execution_time', $executeTime); If ($headers) {
$head =explode(' ', $headers[0]); If ( !emptyempty($head[1]) && intval($head[1])                                                                                        false を返します。 }

リダイレクトを除外するサンプルコードは次のとおりです:



コードをコピーします

コードは次のとおりです:
/**
* リダイレクトなしで、HTTP リクエストに応じてサーバーから送信されたすべての実際のヘッダーを取得します
* リダイレクトせずにヘッダーを取得します
​*/

関数 get_real_headers($url,$format=0,$follow_redirect=0) {
if (!$follow_redirect) {
// 新しいデフォルトオプションを設定します
$opts = array('http' =>
array('max_redirects'=>1,'ignore_errors'=>1)
); stream_context_get_default($opts); }
//ヘッダーを取得します
$headers=get_headers($url,$format); // デフォルトのオプションを復元します
if (isset($opts)) {
$opts = array('http' =>
array('max_redirects'=>20,'ignore_errors'=>0)
);
stream_context_get_default($opts); }
//
を返す $headers を返します
}
?>


この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

http://www.bkjia.com/PHPjc/919259.html

www.bkjia.com

http://www.bkjia.com/PHPjc/919259.html技術記事 PHP が get_headers 関数を使用してリモート ファイルが存在するかどうかを判断する方法 この記事では、PHP が get_headers 関数を使用してリモート ファイルが存在するかどうかを判断する方法について説明します。みんなのためにみんなでシェアしましょう...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。