【PHP】ステータスコードを出力する方法

こんにちは!CODE CLUB965のKです!

今回は、PHPでステータスコードを出力する方法について書こうと思います。

プログラミング学習を始めたばかりの方だと「ステータスコード」と聞いてピンと来ない方もいると思います。

ステータスコードとは、簡単に言うと「リクエストに対してサーバーが応答した時の種類(分類)を示すコード」です。

例えば、あるウェブページのURLを誤って入力してアクセスした際に、ウェブページが存在しないと、通常だとステータスコード「404」コードを返します。
この404コードを見て「ウェブページが存在しない」と判断することができるのです。

見たことがあるという方も多いと思います。

ちなみにステータスコードについてもっと詳しく知りたい方は、代表的なステータスコードをまとめた記事がありますので参考にして下さい。

以下の記事です。

ステータスコードを出力する

ステータスコードは以下の2つのメソッドを使うことで出力することができます。

・header()
・http_response_code()

それぞれの使い方の例を見てみましょう。

header()

一部ですが、よく使われるステータスコードの例を載せておきます。

・ステータスコード 200
あるウェブページにアクセスし、それが適切に表示された場合などに返すコードです。

<?php
  header('HTTP/1.1 200 OK');

・ステータスコード 301
永続的なリダイレクトを表すコードです。
Google の SEO を意識する場合に使ったりします。

<?php
  header('Location: https://hogehoge.com/', true, 301);

・ステータスコード 404
ページが見つからない場合に返すコードです。

<?php
  header('HTTP/1.1 404 Not Found');

・ステータスコード 500
サーバーエラーの際に返すコードです。

<?php
  header('HTTP/1.1 500 Internal Server Error');

http_response_code()

こちらのメソッドは引数にステータスコードを渡してあげるだけでOKです。

header()の場合、上記のように引数にメッセージなどを指定する必要があるため、こちらの方が簡単に使用できますね。

<?php
  http_response_code(200);

ちなみに上記の2つのメソッドを組み合わせた方法もあります。

例えばあるコンテンツのURLが引越しした際にページをリダイレクト(自動転送)させる時などに使えます。
リダイレクトは301のステータスコードを使用します。
以下の例では301コードを示した後でリダイレクトさせます。SEO的にもいいかと思います。

<?php
  // ステータスコードを出力
  http_response_code(301) ;

  // リダイレクト(自動転送処理)
  header( "Location: http://hogehoge.com/new_page.jp" ) ;
  exit ;

header()の引数に、「"Location: リダイレクト先のパス"」を指定することで、ユーザーを対象のページにリダイレクトさせることができます。

また注意点として、リダイレクト後に何かしらの処理をしたくない場合は「exit」を記述するようにしましょう。
処理が続いても問題ない場合は記述不要です。

最後に

今回はPHPでステータスコードを出力する方法について書きました。

代表的なステータスコードの記事と併せて読んでいただければと思います。

それでは、また!

Follow me!