サイト構築や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"
}