ホームページ  >  記事  >  バックエンド開発  >  PHPヘッダー関数は何をするのでしょうか? PHPヘッダー関数入門(コード付き)

PHPヘッダー関数は何をするのでしょうか? PHPヘッダー関数入門(コード付き)

不言
不言オリジナル
2018-07-23 16:01:591598ブラウズ

php ヘッダー関数は何をするのでしょうか? PHP では、header 関数をステータス コードを送信するための 2 つの特別なヘッダーとして使用できます。同じタイプの以前のヘッダーを置き換えたり、HTTP 応答の値を強制的に指定したりできます。次に、次を見てみましょう。具体的な内容。

#まずは公式ドキュメントの定義を見てみましょう

(PHP 4, PHP 5, PHP 7)

header — ネイティブ HTTP ヘッダーを送信

1 void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
パラメータ:

string# # の特別なヘッドが 2 つあります。 「

HTTP/

」で始まる最初のコード (大文字と小文字は区別されません) は、送信される HTTP ステータス コードを計算するために使用されます。たとえば、Apache サーバー上で PHP スクリプトを使用して、存在しないファイルに対するリクエストを処理する場合 (ErrorDocument ディレクティブを使用)、スクリプトが正しいステータス コードで応答することを期待するでしょう。

1 <?php
2 header("HTTP/1.0 404 Not Found");
3 ?>
2 番目の特殊なケースは、「Location:」ヘッダー情報です。ステータス コードが事前に

201

または ## に設定されていない限り、メッセージをブラウザに送信するだけでなく、REDIRECT (302) ステータス コードもブラウザに返します。 .#3xx

1 <?php
2 header("Location: http://www.example.com/"); /* Redirect browser */
3 
4 /* Make sure that code below does not get executed when we redirect. */
5 exit;
6 ?>
replace

    オプションのパラメータ
  • replace 次のパラメータを使用するかどうかを示します。このヘッダーは、同じタイプの前のヘッダーを置き換えます。デフォルトで置き換えられます。 FALSE を渡すと、同じヘッダー情報を強制的に共存させることができます。例:

    1 <?php
    2 header(&#39;WWW-Authenticate: Negotiate&#39;);
    3 header(&#39;WWW-Authenticate: NTLM&#39;, false);
    4 ?>

  • http_response_code

HTTP 応答の値を強制します。このパラメータは、メッセージ文字列 (

string

) が空でない場合にのみ有効であることに注意してください。 ヘッダー関数の一般的な使用法は次のとおりです:

1. リダイレクト


header('Location: http://www.example.com/');

2. 指定されたコンテンツ:

header ('Content-type: application/pdf'); : application/pdf');

//コンテンツを添付ファイルとして指定し、ダウンロード表示用の名前を指定

header('Content -Disposition:attachment; filename="downloaded.pdf"');

//ファイルを開いて出力

# readfile('original .pdf');

上記のコードは、ブラウザでファイル ダイアログ ボックスの効果を生成できます。

4. ユーザーがキャッシュの代わりに最新の情報とデータを取得できるようにします

Header("Cache-Control: no-cache, must-revalidate" ); // HTTP/1.1

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // 重要な時間を設定します

Detailed例:

 <?php
header(&#39;HTTP/1.1 200 OK&#39;); // ok 正常访问
header(&#39;HTTP/1.1 404 Not Found&#39;); //通知浏览器 页面不存在
header(&#39;HTTP/1.1 301 Moved Permanently&#39;); //设置地址被永久的重定向 301
header(&#39;Location: http://www.ithhc.cn/&#39;); //跳转到一个新的地址
header(&#39;Refresh: 10; url=http://www.ithhc.cn/&#39;); //延迟转向 也就是隔几秒跳转
header(&#39;X-Powered-By: PHP/6.0.0&#39;); //修改 X-Powered-By信息
header(&#39;Content-language: en&#39;); //文档语言
header(&#39;Content-Length: 1234&#39;); //设置内容长度
header(&#39;Last-Modified: &#39;.gmdate(&#39;D, d M Y H:i:s&#39;, $time).&#39; GMT&#39;); //告诉浏览器最后一次修改时间
header(&#39;HTTP/1.1 304 Not Modified&#39;); //告诉浏览器文档内容没有发生改变
 
###内容类型###
header(&#39;Content-Type: text/html; charset=utf-8&#39;); //网页编码
header(&#39;Content-Type: text/plain&#39;); //纯文本格式
header(&#39;Content-Type: image/jpeg&#39;); //JPG、JPEG 
header(&#39;Content-Type: application/zip&#39;); // ZIP文件
header(&#39;Content-Type: application/pdf&#39;); // PDF文件
header(&#39;Content-Type: audio/mpeg&#39;); // 音频文件 
header(&#39;Content-type: text/css&#39;); //css文件
header(&#39;Content-type: text/javascript&#39;); //js文件
header(&#39;Content-type: application/json&#39;); //json
header(&#39;Content-type: application/pdf&#39;); //pdf
header(&#39;Content-type: text/xml&#39;); //xml
header(&#39;Content-Type: application/x-shockw**e-flash&#39;); //Flash动画
 
######
 
###声明一个下载的文件###
header(&#39;Content-Type: application/octet-stream&#39;);
header(&#39;Content-Disposition: attachment; filename="ITblog.zip"&#39;);
header(&#39;Content-Transfer-Encoding: binary&#39;);
readfile(&#39;test.zip&#39;);
######
 
###对当前文档禁用缓存###
header(&#39;Cache-Control: no-cache, no-store, max-age=0, must-revalidate&#39;);
header(&#39;Expires: Mon, 26 Jul 1997 05:00:00 GMT&#39;);
######
 
###显示一个需要验证的登陆对话框### 
header(&#39;HTTP/1.1 401 Unauthorized&#39;); 
header(&#39;WWW-Authenticate: Basic realm="Top Secret"&#39;); 
######
 
 
###声明一个需要下载的xls文件###
header(&#39;Content-Disposition: attachment; filename=ithhc.xlsx&#39;);
header(&#39;Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&#39;);
header(&#39;Content-Length: &#39;.filesize(&#39;./test.xls&#39;)); 
header(&#39;Content-Transfer-Encoding: binary&#39;); 
header(&#39;Cache-Control: must-revalidate&#39;); 
header(&#39;Pragma: public&#39;); 
readfile(&#39;./test.xls&#39;); 
######
?>

関連する推奨事項:

php ヘッダー関数の詳細な説明



PHP ヘッダーの使用法( ) 関数#########

以上がPHPヘッダー関数は何をするのでしょうか? PHPヘッダー関数入門(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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