PHP

PHP

【PHP】header()関数

こちらの記事では、PHPのheader()関数についてまとめました。

以下のサイトに記載してある通りですが、
header()関数はHTTPのヘッダ情報を送信するために使用する関数です。
PHP マニュアル > ネットワーク 関数

ブラウザの画面にページを表示させる際には、
通常、ブラウザからWEBサーバに対してページを表示するための情報を要求し、
要求を受けたWEBサーバは、そのページを表示するための情報をブラウザに返します。

それにより、私たちは何か知りたい情報があれば、ブラウザ上で検索して閲覧できるようになっています。

このブラウザからの要求を「HTTPリクエスト」と呼び、
さらに、WEBサーバからブラウザに返される情報を「HTTPレスポンス」と呼びます。

この「HTTPリクエスト」や「HTTPンレスポス」の中にはHTTPヘッダと呼ばれるヘッダ情報が含まれており、
header()関数では、このHTTPヘッダを送信することが可能です。

こちらは、「HTTPレスポス」のヘッダ情報の例です。

cache-control: no-cache, must-revalidate, max-age=0
connection: Keep-Alive
content-encoding: gzip
content-type: text/html; charset=UTF-8
date: Thu, 27 Dec 2018 03:59:48 GMT
expires: Wed, 11 Jan 1984 05:00:00 GMT
keep-alive: timeout=5, max=100
referrer-policy: strict-origin-when-cross-origin
server: Apache
transfer-encoding: chunked
vary: Accept-Encoding
x-frame-options: SAMEORIGIN

200 OK

header()関数でよく行う処理

文字コード

header("Content-type: text/html; charset=utf-8");
で、「Content-type」の文字コードの指定が可能です。

PHPで組んでいるページで文字化けが起こる場合には、
このようにheader関数で文字コードを明示的に指定すれば解決します。

Locationヘッダでリダイレクト(転送)設定

Locationを指定したリダイレクト処理を行う機会は非常に多いです。
例えば、会員サイトでのログイン処理やエラー発生時のエラーが面へリダイレクト設定などで利用します。

<?php
header("Location: http://www.example.com/");
exit(); ←重要
?>

exit()を忘れずに設定して下さい。
処理を切っておかないと、リダイレクトさせた後でも、
header("Location: http://www.example.com/~");
より後に書かれた処理は実行されてしまいます。

<?php
header("Location: /");
exit();
?>

とすれば、トップページにリダイレクトします。

301、404、500のステータスコードを指定

ステータスコードは、.htaccessで設定することが多いですが、
PHPのheader()関数で出力することも可能です。

<?php
header("HTTP/1.1 301 Moved Permanentl");
exit;
?>

<?php
//404エラーの場合
header("HTTP/1.0 404 Not Found");
exit();
?>

<?php
//500エラーの場合
header("HTTP/1.0 500 Internal Server Error");
exit();
?>

ファイルのダウンロード

ZIPやCSV、PDF、画像などのファイルをダウンロードさせる処理を実装する機会も多いです。

そのような場合には、以下のコードで対応可能です。

■ZIPファイルをダウンロードする場合のサンプルコードです

<?php
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=\"example.zip\"");
header("Content-length: " . filesize("ファイルパス"));
readfile($file);
exit;
?>

※「example.zip」は、ダウンロード時の「ファイル名」を設定。
※「ファイルパス」には、サーバ上のファイルパスを設定

■CSVファイルをダウンロードする場合のサンプルコードです

<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"example.csv\"");
header("Content-Length: " . filesize("ファイルパス"));
readfile($file);
exit;
?>

※「example.csv」は、ダウンロード時の「ファイル名」を設定。
※「ファイルパス」には、サーバ上のファイルパスを設定

■PDFファイルをダウンロードする場合のサンプルコードです

<?php
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=\"example.pdf\"");
header("Content-Length: " . filesize("ファイルパス"));
readfile($file);
exit;
?>

※「example.pdf」は、ダウンロード時の「ファイル名」を設定。
※「ファイルパス」には、サーバ上のファイルパスを設定

■JPEGファイルをダウンロードする場合のサンプルコードです

<?php
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"example.jpg\"");
header("Content-Length: " . filesize("ファイルパス"));
readfile($file);
exit;
?>

※「example.jpg」は、ダウンロード時の「ファイル名」を設定。
※「ファイルパス」には、サーバ上のファイルパスを設定

弊社では、以下の方に向けて、WordPressの短期学習プログラムを
格安(15,000円~)で提供しております。

  • 個人でWordPressを使ったサイト(個人ブログやアフィリエイトサイトなど)構築をお考えの方
  • WordPressを使って副業で稼ぎたい方
  • フリーランスでWordPressを使ったお仕事をお考えの方
  • 自社でホームページの構築・運用をお考えの方
  • 企業のWEB担当者の方

内容

基本的には、初心者の方を対象にした学習プログラムです。

※ WordPress制作の上級者の方の場合、弊社の学習プログラムはあまり役に立たないと考えています。

  • ・ WordPressのインストールからセッティングの方法
  • ・ WordPressのテーマ選びについて
  • ・ WordPressのプラグイン選びと設定方法について
  • ・ サーバの準備方法
  • ・ ドメインの取得・管理の方法
  • ・ FTPの設定方法
  • など

ご用意頂くもの

  • ・ ノートPC
    ※ 弊社はWindowsを業務で利用しておりますので、できればWindowsのPCをおすすめしています。
  • WordPressでサイトの制作を考えているが、何から始めればいいのか分からない。
  • ドメインやサーバはどうやって準備すればいいの?
  • そもそもホームページの公開には何が必要なの?

などなど、

どのような内容でも構いませんので、お気軽にお問い合わせ下さい。

お客様の目的をお聞きした上で、最適の学習プランを提案致します。

ご興味のある方は、以下の内容を記載の上、一度お問い合わせ下さい。
こちらより、折り返しメールを致します。

  • ① お名前
  • ② 折り返し先のメールアドレス
  • ③ 希望の学習内容

関連記事

  1. PHP

    PHP

    PHP4では読み込めていたんですが。。。

     先日、急にあるプログラムが正常に動作しなくなったとの報告がありま…

  2. PHP

    PHP

    SJISではなくSJIS-winを使用すること!!

    mb_convert_encodingでの文字コードの変換…

  3. データベース

    PHP

    phpPgAdminをインストール

    phpPgAdminのインストール方法についてのメモ書きです。&n…

  4. PHP

    PHP

    さくらインターネット 共用サーバでエラーログを出力

    さくらインターネットの共用サーバを借りて頂いている業者さんからの依頼で…

  5. PHP

    PHP

    in_array()関数では第3引数(true)を設定する

    ある配列の中に特定の値が貼っているかをチェックする場合、in_ar…

  6. PHP

    PHP

    imagejpeg(): Filename cannot be empty in...

    以前組んだシステムを別のサーバーに設置することに!!…

最近の記事

  1. コピペ(Copy and Paste)
  2. Check Copy Contents(CCC)
  3. WordPress(WP)
  4. セキュリティ
  5. セキュリティ
  6. THE THOR(ザ・トール)
  7. SONY α6400の本体
  8. THE THOR(ザ・トール)
  9. 短縮URL
  10. FFFTP(ファイル転送)
PAGE TOP