PHP

コーディングに活用できる$_SERVER変数の自分用まとめ

サイト構築やWordPressのテーマカスタマイズでよく使う$_SERVER変数ですが、毎回毎回忘れて調べてしまうので、記事にまとめました。

※私がWeb制作でよく使うものなので、全ては網羅していません。
全部見たい場合はこちらを実行して$_SERVERの中身を見ましょう。(丸投げ)

<?php
echo '<pre>';
var_dump($_SERVER);
echo '</pre>';
?>

Web制作でよく使う$_SERVER変数まとめ

変数内容表示例
$_SERVER['DOCUMENT_ROOT']サーバーのルートディレクトリ/var/www/sitename
$_SERVER['SERVER_NAME']サーバーのドメインexample.com
$_SERVER['REQUEST_URI']ページにアクセスするために指定されたURI
ブラウザのアドレスバーに表示されているドメイン以降の部分です。
/sample/sample.php?p=xxxxx
/sample/
$_SERVER['SCRIPT_NAME']現在のページのパス(ファイル名を含む)/sample/sample.php
/sample/index.php
$_SERVER['QUERY_STRING']URLのクエリ文字列(いわゆるURLパラメータ)
URLに含まれる”?”以降の文字列です。
p=xxxxx

WordPressで現在のページを取得する際は、$_SERVER['REQUEST_URI']を使います。$_SERVER['SCRIPT_NAME']を使うと、WPの実行ファイル「/index.php」が取得されてしまいます。

各変数の使用例

別のファイルを呼び出す(インクルード)

include $_SERVER['DOCUMENT_ROOT'].'/assets/include/header.php';

公開サイトと開発サイトで処理を分ける

$domain = $_SERVER['SERVER_NAME'];
if($domain === 'localhost' || $domain === 'dev.example.com'){
    // 開発サイトでの処理
} else {
    // 公開サイトでの処理
}

ディレクトリごとに処理を分ける

// ドメイン以下のURLを取得し、配列に格納
$path = $_SERVER['REQUEST_URI'];
$path_array = explode('/', $path);
$dir1 = $path_array[1]; //下層ページの1つ目のディレクトリを取得

if($dir1 === 'company'){
    // /company/ディレクトリでの処理
}
// URLが http://example.com/company/history/ の場合

array(4) {
  [0]=>
  string(0) ""
  [1]=>
  string(7) "company"
  [2]=>
  string(7) "history"
  [3]=>
  string(0) ""
}

URLパラメータによって処理を分ける

// パラメータを取得し、配列に格納
$param = $_SERVER['QUERY_STRING'];
$param_array = [];
parse_str($param, $param_array);

if ($param_array['place'] === 'tokyo') {
    // パラメータplaceの値がtokyoだった場合の処理
}
// パラメータが place=tokyo&date=20221231 の場合

array(2) {
  ["place"]=>
  string(5) "tokyo"
  ["date"]=>
  string(8) "20221231"
}
カテゴリー: PHP

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る