ホームページ >バックエンド開発 >PHPチュートリアル >リモートファイルが存在するかどうかを検出するPHP get_headersメソッド

リモートファイルが存在するかどうかを検出するPHP get_headersメソッド

WBOY
WBOYオリジナル
2016-07-25 08:56:041235ブラウズ
  1. $url = 'http://example.com';
  2. $hander_array = get_headers ( $url );
  3. if ($header_array [0] == 'HTTP/1.1 200 OK' ) {
  4. echo 'ファイルが存在します';
  5. } else {
  6. 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) {
  1. $headers = get_headers($theURL)
  2. }
  3. ?>
  4. ;
  5. コードをコピー
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));
      ?>

    1. コードをコピーします
    2. 出力は次のようになります。 配列 ( [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 )

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。