PHPで現在のURLを取得してみます。
サンプルコード
PHP(URL取得部分)
<?php // プロトコル $protocol = empty($_SERVER["HTTPS"]) ? 'http://' : 'https://'; // http:// // ホスト $host = $_SERVER['HTTP_HOST']; // cly7796.net // パス(パラメータを含む) $path = $_SERVER['REQUEST_URI']; // /wp/sample/get-the-url-in-php/index.php?param=abc // パス2(パラメータを含まない) $path2 = $_SERVER['SCRIPT_NAME']; // /wp/sample/get-the-url-in-php/index.php // パラメータ $param = $_SERVER['QUERY_STRING']; // param=abc // URL全体 $URL = $protocol . $host . $path; // https://cly7796.net/blog/sample/get-the-url-in-php/index.php?param=abc ?>
PHP(表示部分)
<dl> <dt>URLのプロトコル部分:</dt> <dd><?php echo $protocol; ?></dd> </dl> <dl> <dt>URLのホスト情報:</dt> <dd><?php echo $host; ?></dd> </dl> <dl> <dt>URLのパス(パラメータを含む):</dt> <dd><?php echo $path; ?></dd> </dl> <dl> <dt>URLのパス2(パラメータを含まない):</dt> <dd><?php echo $path2; ?></dd> </dl> <dl> <dt>URLのパラメータ:</dt> <dd><?php echo $param; ?></dd> </dl> <dl> <dt>URL全体を取得:</dt> <dd><?php echo $URL; ?></dd> </dl>
$_SERVER[‘HTTPS‘] | プロトコル部分がhttpの場合は空が、httpsの場合は空でない値が返ってくる。 |
---|---|
$_SERVER[‘HTTP_HOST‘] | ホスト情報が返ってくる。 |
$_SERVER[‘REQUEST_URI‘] | ドメイン以下のパラメータを含むパスが返ってくる。 ハッシュ以下は含まれない。 |
$_SERVER[‘SCRIPT_NAME‘] | ドメイン以下のパラメータを含まないパスが返ってくる。 ハッシュ以下は含まれない。 |
$_SERVER[‘QUERY_STRING‘] | パラメータが返ってくる。 |
ハッシュは取得できないみたいです。
【参考サイト】
- PHPで現在アクセスされているページのURLを取得する – Qiita
- [PHP]現在アクセスしているページのURL・パラメタの取得方法 | じゃんくぽーと
- PHP: $_SERVER – Manual
コメントが承認されるまで時間がかかります。