はじめに

このheader関数、ページを強制的に移動させるのに使えるのですが、調べてみるとそれが本来の機能ではないようですね。

Contents

header関数

この関数はWebページのヘッダ情報を出力します。この機能を使って、様々な処理が可能です。
さっそく、いろいろな使い方の例を見ていきましょう!

いろいろな使い方

  • ページリダイレクト

    まずは、ページをリダイレクトさせる方法。次のようにURLを指定すると、自動的にページがジャンプします。

    <?php
    //Location以降にジャンプしたいページURLを記入
    header("Location: http://engideer.com/");
    
    //以下、exit;を追記致しました
    exit;
    ?>
    

    追記:header関数の後にexit;を付けないと、header関数の後の処理を実行してからページをジャンプします。全然知りませんでした。汗

  • 強制的に404表示

    404ページとして認識、表示させる書き方。

    <?php
    header("HTTP/1.0 404 Not Found");
    ?>
    
  • ファイルをダウンロードさせる

    指定したファイルをダウンロードさせる書き方。

    <?php 
    $file = 'ここにファイルへのパスを記入';
    
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename="ここにファイル名"'); 
    header('Content-Length: '.filesize($file));
    readfile($file); 
    ?>
    

ざっと見ましたが、他にもいろいろ使えるようです。あとは適宜調べます。

header関数を使う際の注意

最後にこの関数を使用する上での注意点です。
PHPマニュアルによると、「header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要がある」とあります。
つまり、header関数の前にHTMLタグが入っている下のような記述はエラーになります。

//エラーの例
<html>
<?php
header('Location: http://engideer.com/');
?>

ということで、このことに気を付けながら使っていきましょう。

参考サイト