• ベストアンサー

header() 関数が必要になる場面は?

http://php.net/manual/ja/function.header.php にheader() 関数の使い方が説明されていますが、 生の HTTP ヘッダを送信するというのは、オートで送信されているのを カスタマイズしてサーバーの動きを操作するということですよね。 この関数を利用するのは、どういった場合に必要になるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 例えばですがファイルのダウンロードをさせるPHPを作る場合は以下のようなヘッダを出力します。 header ( 'Content-type: application/octet-stream' ); header ( 'Content-Disposition: attachment; filename="filename.jpg"' ); header ( 'Content-Length: ' . filesize($fileName) ); この場合、ブラウザ側はfilename.jpgという名前でダウンロードのダイアログを出してくれます。 後は画像をブラウザに出力する例として header ( 'Content-type: image/jpeg' ); readfile ( '画像へのパス' ); としておくと <img src="./image.php">とすればブラウザに画像が表示されます。 これなんかはデータベースに直接画像データを保存しておいてその画像を表示するときに利用したりします。 要はこちらで何か特定しておきたい時に利用します。 あと良く使われるのは header ( 'Location: ./index.html' ); とかしておけばこの記述のあるPHPにアクセスがあるとindex.htmlに飛ばされます。

その他の回答 (3)

  • asobi17
  • ベストアンサー率25% (4/16)
回答No.4

以前、短縮URLシステムを独学で作ったのですが そのときに使いました。 流れとしては ・短縮したいURLをフォームに入れる。 ・適当な文字を入れたデータベースから、urlを吐き出す。 こんな感じです。(このURLはダミー) http://adv.php?id=ab  abの所がデータベースから取り出した適当文字です。 ・吐き出したURLを入力されたら、abを手がかりにデータベースから  元のURLを取り出す。 ・あとは転送をかけて、おしまいです。 header('Location':http://www.yahoo.co.jp); ------------------------------- 本当のURL短縮サービスでは、 こんなに簡単じゃないと思いますが、多分原理としてはこんな感じだと思います。

回答No.3

・PHPでhtml以外を出力したいとき。画像ファイルとかPDFなど そのときにheader()でContent-Disposition: attachment; filename="ファイル名" を指定してファイル名をつける名をつけることによってダウンロード時にそのファイル名になって保存することが出来る。 ・意図的にエラー表示させたいとき(定番の使い方はIPなどによるアクセス拒否) ・ページをリダイレクトさせたいとき

回答No.2

こんばんは。 まぁ、 あとは、文字化けの原因になる文字コードを指定したり、 キャッシュの抑制とか・・・。 使い道は様々なので、工夫次第です・・・。

関連するQ&A