-
- $url = 'http://example.com';
- $hander_array = get_headers ( $url );
- if ($header_array [0] == 'HTTP/1.1 200 OK' ) {
- echo 'ファイルが存在します';
- } else {
- echo 'ファイルが存在しません'
-
コードをコピーします 手順:
get_headers 関数の機能: リモートアドレスにアクセスする場合、サーバーから送信された HTTP ヘッダーを配列の形式で返します。
$header[0] はサーバーから返されるステータス コードです (通常、ステータス コードは最初に返されます)。
したがって、ファイルがリモート サーバー上に存在するかどうかを判断するには、ファイルへのアクセスによって返されるステータス コードが「HTTP/1.1 200 OK」であることを確認するだけで済みます。
また、ステータスコードが「HTTP/1.1 404 Not Found」ではないことも判断でき、ファイルの存在を回答することもできる。
参考までに、get_headers 関数の例をさらに 2 つ以下に共有します。
1. 3 桁の HTTP 応答コードを取得する例:
function get_http_response_code($theURL) { - $headers = get_headers($theURL)
- }
- ?>
- ;
- コードをコピー
2、リダイレクトを除外する例:
/** * リダイレクトなしでヘッダーを取得します * bbs.it-home.org による */ function get_real_headers($url,$format=0,$follow_redirect=0) { if (!$follow_redirect) { //set新しいデフォルトオプション $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)
}
//return
return $headers
?>
コードをコピーします
php get_headers ()
get_headers
(PHP5)
get_headers — HTTP リクエストに応じてサーバーから送信されたすべてのヘッダーを取得します
説明書
array get_headers ( string $url [, int $format ] )
get_headers() は、HTTP リクエストに応じてサーバーから送信されたヘッダーを含む配列を返します。失敗した場合は FALSE を返し、E_WARNING レベルのエラー メッセージを発行します。
オプションの format パラメーターが 1 に設定されている場合、get_headers() は対応する情報を解析し、配列のキー名を設定します。
手順:
PHP 5.1.3 以降、この関数はデフォルトのストリーム コンテキストを使用します。これは、stream_context_get_default() 関数を使用して設定および変更できます。
get_headers() の例:
$url = 'http://bbs.it-home.org'; print_r(get_headers($url)); print_r(get_headers($url, 1)); ?>
-
-
- コードをコピーします
-
-
- 出力は次のようになります。
配列
(
[0] => HTTP/1.1 200 OK
[1] => 日付: 2004 年 5 月 29 日土曜日 12:28:13 GMT
[2] => サーバー: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => 最終更新日: 2003 年 1 月 8 日水曜日 23:11:55 GMT
[4] => Eタグ: "3f80f-1b6-3e1cb03b"
[5] => 受け入れ範囲: バイト
[6] => コンテンツの長さ: 438
[7] => 接続: 閉じる
[8] => コンテンツタイプ: text/html
)
配列
(
[0] => HTTP/1.1 200 OK
[日付] => 2004 年 5 月 29 日(土) 12:28:14 GMT
[サーバー] => Apache/1.3.27 (Unix) (Red-Hat/Linux)
[Last-Modified] => 2003 年 1 月 8 日水曜日 23:11:55 GMT
[ETag] => "3f80f-1b6-3e1cb03b"
[Accept-Ranges] => バイト
[コンテンツの長さ] => 438
[接続] => 閉じる
[コンテンツタイプ] => text/html
)
|