ホームページ  >  記事  >  バックエンド開発  >  ヘッダーの詳細な使用法については、php_PHP チュートリアルで説明します。

ヘッダーの詳細な使用法については、php_PHP チュートリアルで説明します。

WBOY
WBOYオリジナル
2016-07-21 15:08:09712ブラウズ

header() は、生の HTTP ヘッダーの送信に使用されます。 HTTP ヘッダーの詳細については、HTTP/1.1 仕様を参照してください。 例 1:


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

Header("Location: http://www.jb51.net";); exit;//エラーを回避して実行を続行するには、各リダイレクトの後に「exit」を追加する必要があります。
?>





コードをコピーします

コードは次のとおりです:
header("refresh:2;url=http://www.jb51.net"); echo "読み込み中です。お待​​ちください...
自動的に 3 つの にジャンプします秒 Baidu...";
?>


-------------------------------- --------------------------------------

例 2: ページのアクセスを無効にするIE にキャッシュされる
ので、視聴者はプロキシやキャッシュの情報ではなく、毎回最新の情報を取得できます:


コードをコピーします

コードは次のとおりです:
header ( '有効期限: 2009 年 12 月 4 日金曜日 09:00:00 GMT' );header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'キャッシュ制御: ストアなし、キャッシュなし、再検証する必要があります' );
header( 'キャッシュ制御: ポストチェック = 0、事前チェック = 0'、false );
header( 'プラグマ : いいえ-cache' ); //http1.0 および https
と互換性があります?>



CacheControl = no-cache Pragma=no-cache Expires = -1

サーバー上の Web ページが頻繁に変更される場合は、Expires を設定しますすぐに期限切れになる場合は -1 に設定します。 Web ページが毎日午前 1 時に更新される場合、有効期限を翌日の午前 1 時に設定できます。 HTTP1.1 サーバーが CacheControl = no-cache を指定すると、ブラウザーは Web ページをキャッシュしません。
古い HTTP 1.0 サーバーは Cache-Control ヘッダーを使用できません。したがって、HTTP 1.0 サーバーとの下位互換性のために、IE は Pragma:no-cache ヘッダーを使用して HTTP に対する特別なサポートを提供します。クライアントが安全な接続 (https://) 経由でサーバーと通信し、サーバーが応答で Pragma:no-cache ヘッダーを返す場合、Internet Explorer は応答をキャッシュしません。
注: Pragma:no-cache は、安全な接続で使用される場合にのみキャッシュを防止します。安全でないページで使用された場合、処理は Expires:-1 と同じになりますが、ページはすぐに期限切れとしてマークされます。 http-equiv メタ タグ:
http-equiv メタは、HTML ページ内の指定された http メッセージ ヘッダーをマークするために使用できます。古いバージョンの IE は HTML メタ タグをサポートしていない可能性があるため、http メッセージ ヘッダーを使用してキャッシュを無効にすることをお勧めします。
------------------------------------------------- ----------------------------------

例 3: ユーザーのブラウザに、ファイルを保存できないというメッセージを表示させます。見つけられた。

インターネット上の多くの情報には次のように書かれています: PHP の関数 header() は、header("Status: 404 Not Found") などのステータス ヘッダーをブラウザーに送信できます。しかし、実際にはブラウザから返される応答は次のとおりです:


コードをコピー

コードは次のとおりです:
HTTP/1.x 200 OKDate: Thu, 03 Aug 2006 07:49:11 GMTServer : Apache /2.0.55 (Win32) PHP/5.0.5X-Powered-By: PHP/5.0.5
ステータス: 404 Not Found
Content-Length: 0
Keep-Alive: timeout=15, max=98
Connection : Keep-Alive
Content-Type: text/html


いくつかの情報を確認した後、正しい書き方は次のとおりです:
header("http/1.1 404 Not Found");
最初の部分はバージョンですHTTP プロトコルの (HTTP-Version )、2 番目の部分はステータス コード (Status)、3 番目の部分は理由フレーズ (Reason-Phrase) です。
------------------------------------------------- ----------------------------------
例 4: ユーザーにファイルをダウンロードさせる (隠しファイルの場所)

htmlタグは通常のファイルをダウンロードするために使用できます。ファイルの機密性を保ち、ファイルのリンクを他の人に知らせたくない場合は、ヘッダー関数を使用してファイルをダウンロードできます。


コードをコピーします
コードは次のとおりです:
header("Content-type: application/x-gzip"); header("Content-Disposition:attachment; filename=)ファイル名/" ); header("Content-Description: PHP3 生成データ");
?>


例 4: ヘッダー関数の前にコンテンツを入力する
一般的に、HTML コンテンツはヘッダー関数の前に出力できません。同様の関数には、setcookie() 関数やセッション関数などがあります。これらの関数は、メッセージ ヘッダー情報を出力ストリームに追加する必要があります。 header() が実行される前に echo などのステートメントがある場合、後で header() が発生したときに、「警告: ヘッダー情報を変更できません - ヘッダーは既に .... によって送信されました。」エラーが報告されます。つまり、これらの関数の前にテキスト、空白行、復帰などを含めることはできません。exit() 関数を header() 関数の後に追加するのが最善です。たとえば、次の間違った記述では、2 つの PHP コード スニペットの間に空行があります:
コードをコピーします コードは次のとおりです:

//some code here
?>
/ /ここに空の行があるはずです Line
header("http/1.1 403 Forbidden");
exit();
?>

理由は次のとおりです: PHP スクリプトの実行が開始されると、 http メッセージ ヘッダー (タイトル) 情報と本文情報を同時に送信します。 http メッセージ ヘッダー (header() または SetCookie() 関数から) はすぐには送信されず、代わりにリストに保存されます。ただし、スクリプトがヘッダー以外の出力を送信した後 (たとえば、HTML または print() 呼び出しを使用した場合)、PHP は最初に送信する必要があります。すべてのヘッダーを削除し、HTTP ヘッダーを終了してから、本文の送信を続行します。これ以降、ヘッダー情報を追加または変更する試みは許可されず、上記のエラー メッセージのいずれかが送信されます。
解決策:
キャッシュ (output_buffering) をオンにするように php.ini を変更するか、プログラム内でキャッシュ関数 ob_start()、ob_end_flush() などを使用します。 原則は、output_buffering が有効な場合、スクリプトが出力を送信するときに PHP は HTTP ヘッダーを送信しません。代わりに、この出力を動的に増加するキャッシュにパイプ処理します (集中出力メカニズムを持つ PHP 4.0 でのみ使用可能)。 ヘッダーは実際には送信されないため、ヘッダーを変更/追加したり、Cookie を設定したりすることができます。すべてのスクリプトが終了すると、PHP は自動的に HTTP ヘッダーをブラウザーに送信し、出力バッファーの内容を送信します。
================================================ === ================
PHP マニュアルサンプルアプリケーション
1: heder コマンドを使用して、ブラウザーに新しいコンテンツ (キャッシュなし) を強制的に使用させることができます。
URL に一意の番号を追加して、毎回新しいコンテンツを読み取り、キャッシュを回避することもできます。
例:
コードをコピー コードは次のとおりです:

print "" //通常はread キャッシュされたファイルですか
?>
print "" ; //ブラウザに再リクエストさせるための一意の番号を追加しました
w//print "";
?>

2: 以下は、表示のために画像をブラウザに送信する優れた関数です。
コードをコピーします コードは次のとおりです:

function PE_img_by_path($PE_imgpath = "")
{
if (file_exists($PE_imgpath)) {
$PE_imgarray = path info($PE_imgpath) ;
$iconcontent = file_get_contents($PE_imgpath);
header("Content-type: image/" . $PE_imgarray["extension"]);
header('Content-length: '.strlen($ iconcontent));
echo $iconcontent;
Die(0);
}
return false;
}
?>

// ok
header('HTTP/1.1 200 OK');
// 404 ヘッダーを設定します:
header('HTTP/1.1 404 Not Found');
// 設定されたアドレスは永続的なリダイレクト
header('HTTP/1.1 301 Moved Permanently');
//新しいアドレスに移動
header('Location: http://www.baidu.com');
//ファイル遅延リダイレクト:
header ('Refresh: 10; url=http://www.example.org/');
print '10 秒後にリダイレクトされます';
//もちろん、HTML 構文を使用して実装することもできます
// < meta http-equiv="refresh" content="10;http://www.example.org/ />
// X-Powered-By: PHP:
header('X-Powered-By: PHP/ 4.4.0');
header('X-Powered-By: Brain/0.6b');
//ドキュメント言語
header('Content- language: en');
//ブラウザに最後の言語を伝えます変更時刻
$time = time() - 60; // または filemtime($fn), etc
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT' );
//ドキュメントのコンテンツが変更されていないことをブラウザに伝えます
header('HTTP/1.1 304 Not Modified');
//コンテンツの長さを設定します
header('Content-Length: 1234');
//ダウンロード タイプを 1 つに設定します
header('Content-Type: application/octet-stream');
header('Content-Disposition:attachment; filename="example.zip"'); -エンコーディング: バイナリ' );
// 送信するファイルをロードします:
readfile('example.zip');
// 現在のドキュメントのキャッシュを無効にします
header('Cache-Control: no-cache, no-store 、max-age=0 、must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // 過去の日付
header('Pragma: no-cache') ;
//コンテンツの設定 Type:
header('Content-Type: text/html; charset=iso-8859-1');
header('Content-Type: text/html; charset=utf-8');
header('Content-Type: text/plain'); //プレーンテキスト形式
header('Content-Type: image/jpeg') //JPG 画像
header('Content-Type: application/zip'); ; // ZIP ファイル
header('Content-Type: application/pdf') // PDF ファイル
header('Content-Type: audio/mpeg') // 音声ファイル
header('Content-Type: application); /x-shockwave-flash '); //Flashアニメーション
//ログインダイアログを表示
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
print 'ユーザーがキャンセルを押すか、';
print '間違ったログインデータを入力した場合に表示されるテキスト';
?>

http://www.bkjia.com/PHPjc/327496.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327496.html技術記事 header() は、生の HTTP ヘッダーを送信するために使用されます。HTTP ヘッダーの詳細については、HTTP/1.1 仕様を参照してください。 例 1: 次のようにコードをコピーします。 ?PHP Header("Location: http://...
)
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:安全な PHP アプリケーションを作成するための 7 つの習慣の詳細な分析_PHP チュートリアル次の記事:安全な PHP アプリケーションを作成するための 7 つの習慣の詳細な分析_PHP チュートリアル

関連記事

続きを見る