PHPで現在のURLを取得する方法

PHPで、現在のページのURLを取得する方法について解説します。

URLの取得は$_SERVER変数を使う

現在アクセスしているURLの情報は、$_SERVERというグローバル変数に格納されています。

現在のディレクトリ+ファイル名を取得する

現在見ているページのディレクトリ+ファイルの情報は、$_SERVER['REQUEST_URI']で取得できます。

サンプルコード
echo $_SERVER['REQUEST_URI'];
/php_now_url/

ちなみに$_SERVER['REQUEST_URI']は、「?id=123」などのクエリパラメータも含まれます。

パラメータを除外したい場合は、$_SERVER['SCRIPT_NAME']という変数を使用しましょう。

現在のドメインを取得する

現在見ているページのドメインは、$_SERVER['HTTP_HOST']で取得できます。

サンプルコード
echo $_SERVER['HTTP_HOST'];
kinocolog.com

現在のページURLをフルで取得する関数

「https://」などのプロトコル込みで、現在見ているページをURLをフルで取得できる関数を用意しました。

function nowUrl(){
    $url = '';
    if(isset($_SERVER['HTTPS'])){
        $url .= 'https://';
    }else{
        $url .= 'http://';
    }
    $url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    return $url;
}

実行結果はこちら。

サンプルコード
echo nowUrl();
https://kinocolog.com/php_now_url/

SSL対応かどうかで「http」か「https」か変わってくるのですが、SSL対応の場合は$_SERVER['HTTPS']に「on」という値が入っているので、そちらで判定しています。

必要な際はコピペして使ってください。

以上、PHPで現在のURLを取得する方法、でした。

PHP