ホームページ  >  記事  >  バックエンド開発  >  Php header() 関数の構文と使用法 code_PHP チュートリアル

Php header() 関数の構文と使用法 code_PHP チュートリアル

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

構文:

コードをコピー コードは次のとおりです:

Void header(string $string[,bool $replace=true [, int $http_response_code)]

元の HTTP ヘッダーを送信しますクライアント
注:
Header 関数は、通常の HTML タグ、ファイル内の空白行、または php からのいずれであっても、実際の出力の前に呼び出す必要があります。つまり、この関数の前にはいかなる形式の出力も存在できません。
パラメータの説明:

パラメータの説明
文字列は必須です。送信するヘッダー文字列を指定します。
オプションで交換します。このヘッダーが前のヘッダーを置き換えるか、2 番目のヘッダーを追加するかを示します。
デフォルトはtrue(置換)です。 false (同じタイプの複数のヘッダーを許可します)。

http_response_code はオプションです。 HTTP 応答コードを指定された値に強制します。 (PHP 4 以降で利用可能)
一般的な使用例:

1. サーバーステータスコードを送信します

コードをコピーします コードは次のとおりです:

header('HTTP/1.0 404 Not Found');

一般的なステータスコード:

ステータス コードの説明
100-199 はリクエストが正常に受信されたことを示し、クライアントは処理プロセス全体を完了するために次のリクエストを送信し続ける必要があることを示します。
200-299 はリクエストが正常に受信され、処理プロセス全体が完了したことを示します。完了しました。未完了のリクエストには 200
300-399 が一般的に使用されます。クライアントはリクエストをさらに調整する必要があります。たとえば、リクエストされたリソースは新しいアドレスに移動されました。通常は 302,304
400-499 が使用されます。は正しくありません、一般的に使用されます 404
500-599 サーバー側でエラーが発生しました、一般的に使用されます 500
詳細は、HTTP&FTP 対応プロンプト情報を参照してください

2. ページジャンプ

コードをコピーします コードは次のとおりです:

// すぐにジャンプします
header('Location: http://www.jb51.net/');

// 3 秒後にジャンプ
header('refresh:3;url=http://www.jb51.net');

3. ブラウザのキャッシュを設定します

ブラウザがキャッシュしないように強制します!
[コード]
//header('有効期限:-1');
header('有効期限: 1997 年 7 月 26 日月曜日 05:00:00 GMT');
header('キャッシュ制御:キャッシュなし、必須-revalidate');
header('pragma:no-cache');
header('Last-Modified: '.date('D, j M Y H:i:s T') );


説明:
有効期限次の時刻は、次のような GMT 形式である必要があります: gmdate("M d Y H:i:s");
Cache-control の一般的な値には、private、no-cache、max-age、must-revalidate などが含まれます。デフォルトはプライベートです。その機能は、異なる再閲覧方法に応じて次の状況に分類されます。
キャッシュディレクティブの説明
public すべてのコンテンツがキャッシュされます
private コンテンツはプライベートキャッシュにのみキャッシュされます
no-cache すべてのコンテンツはキャッシュされません
no-store すべてのコンテンツはキャッシュされず、インターネット一時ファイルも保存されません 中
必須-revalidation/proxy-revalidation キャッシュされたコンテンツが無効な場合、再検証のためにリクエストをサーバー/プロキシに送信する必要があります
max-age=xxx (xxx は数値) キャッシュされたコンテンツは xxx 秒後に無効になります、このオプションのみ使用可能HTTP 1.1 では、Last-Modified と併用すると優先度が高くなります
新しいウィンドウを開きます
cache-control の値が private、no-cache、must-revalidate に指定されている場合、再度開かれます新しいウィンドウでアクセスする場合 サーバーにアクセスします。そして、max-age 値が指定されている場合、次のようにこの値内でサーバーは再アクセスされません:
コードをコピーします コードは次のとおりです:

header('cache-control:max-年齢= 5');

このWebページにアクセスしてから5秒以内にサーバーに再度アクセスしないことを示します

アドレスバーで Enter キーを押します
値が private または Must-revalidate の場合、サーバーには初回のみアクセスされ、それ以降はアクセスされません。値が no-cache の場合、毎回アクセスされます。値が max-age の場合、有効期限が切れる前に再度アクセスすることはできません。
戻るボタンを押します
値がprivate、must-revalidate、max-ageの場合は再度アクセスされません。no-cacheの場合は毎回再度アクセスされます
更新ボタンを押してください
関係ありません値が何であれば、再度アクセスされます。キャッシュ制御値が「no-cache」に指定されている場合、このページにアクセスしても、インターネットの一時記事フォルダーにページのバックアップは残りません。さらに、「Expires」値を指定すると、キャッシュも影響を受ける可能性があります。たとえば、Expires の値がかなり経過した時間として指定されている場合、この Web サイトにアクセスするときにアドレス バーで Enter キーを繰り返し押すと、毎回アクセスが繰り返されます:
Expires: Fri, 31 Dec 1999 16: 00:00 GMT
「Last-Modified」について
ブラウザが初めて URL をリクエストすると、サーバーからの戻りステータスは 200 になります。コンテンツはリクエストしたリソースです。同時に、Last-Modified が存在します。サービス期間中にファイルが最後に変更された時刻を示す Modified 属性。形式は次のようになります。
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
クライアントがこの URL を要求したとき。 2 回目は、HTTP プロトコルの規定に従って、ブラウザーは If-Modified-Since をサーバー ヘッダーに送信し、この時間以降にファイルが変更されたかどうかを尋ねます。

If-Modified-From: Fri, 12 May 2006 18:53:33 GMT
サーバー側のリソースが変更されていない場合、空のコンテンツとともに HTTP 304 (Not Changed.) ステータス コードが自動的に返されるため、量が節約されます。送信されるデータの数。サーバー側のコードが変更されるか、サーバーが再起動されると、リソースが再発行され、最初のリクエストと同様のものが返されます。これにより、リソースがクライアントに繰り返し送信されなくなり、サーバーが変更されたときにクライアントが最新のリソースを取得できるようになります。

Last-Modified によりパフォーマンスが向上します
賢明な開発者は、Last-Modified を ETags リクエストの http ヘッダーと一緒に使用し、クライアント (ブラウザなど) のキャッシュを活用できます。サーバーは最初に Last-Modified/Etag タグを生成するため、サーバーは後でそれを使用してページが変更されたかどうかを判断できます。基本的に、クライアントは、このトークンをサーバーに返すことによって、その (クライアント側) キャッシュを検証するようにサーバーに要求します。

プロセスは次のとおりです:

クライアントはページ (A) をリクエストします
サーバーはページ A を返し、Last-Modified を A に追加します
クライアントはページを表示し、Last-Modified とともにページをキャッシュします
クライアントは再度ページ A をリクエストし、The Last-最後のリクエスト中にサーバーから返された Modified は一緒にサーバーに渡され、サーバーは Last-Modified をチェックして、最後のクライアント リクエスト以降にページが変更されていないと判断し、応答 304 と空の応答本文を直接返します。

3. ファイルのダウンロード
たとえば、PDF ファイルをダウンロードします

コードをコピーします コードは次のとおりです:
// PDF
header('Content-type: application/pdf');

// これは、downloaded.pdf という名前になります
// 添付ファイルであることを示し、名前を付けてダウンロードします
header('Content-Disposition:attachment; filename="downloaded.pdf"' );

// PDF ソースは 1.pdf
readfile('1.pdf');

実際、この方法で理解することができます。

コードをコピーします コードは次のとおりです:
header('content-type:application/octet-sream');
Header('Accept-Ranges:bytes');

//Return bytes
Header('content-disposition:attachment;filename="ファイル名"');
Header('Accept-length:'.$filesize);

http://www.bkjia.com/PHPjc/825013.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/825013.html技術記事構文: 次のようにコードをコピーします: Void header(string $string[,bool $replace=true [, int $http_response_code) 元の HTTP ヘッダーをクライアントに送信するときに注意してください: Header 関数は... にある必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。