詳しくはこちら
【チートシート】JavaScriptとPHPでURL関連の取得方法まとめ
JavaScriptとPHPでURLを取得する時に毎回書き方をぐぐっていたので、まとめました。
まとめ(コンパクトvar.)
| JavaScript | PHP | |
| URL全体 | location.href | (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] |
| パス | location.pathname | strstr($_SERVER['REQUEST_URI'], '?', true) |
| パラメータ (全て) |
location.search | strstr($_SERVER["REQUEST_URI"], '?') |
| パラメータ (特定キー) |
const params = new URL(location.href).searchParams; params.get('キー名') |
$_GET['キー名'] |
| プロトコル | location.protocol | (empty($_SERVER['HTTPS']) ? 'http' : 'https') |
| ドメイン (ポート番号含む) |
location.host | $_SERVER['HTTP_HOST'] |
| ドメイン | location.hostname | $_SERVER['SERVER_NAME'] |
| ポート番号 | location.port | $_SERVER['SERVER_PORT'] |
| ハッシュ(#xxxの部分) | location.hash | - |
まとめ(取得サンプルありvar.)
取得サンプルのURLはhttps://domain.com/xx/?hoge=aaaとします。
| JavaScript | PHP | |
| URL全体
https://domain.com/xx/?hoge=aaa |
location.href | (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] |
| パス
/hoge |
location.pathname | strstr($_SERVER['REQUEST_URI'], '?', true) |
| パラメータ(全て) ?hoge=aaa |
location.search | strstr($_SERVER["REQUEST_URI"], '?') |
| パラメータ(特定キー) aaa |
const params = new URL(location.href).searchParams; params.get('キー名') |
$_GET['キー名'] |
| プロトコル https |
location.protocol | (empty($_SERVER['HTTPS']) ? 'http' : 'https') |
| ドメイン(ポート番号含む) domain.com |
location.host | $_SERVER['HTTP_HOST'] |
| ドメイン domain.com |
location.hostname | $_SERVER['SERVER_NAME'] |
| ポート番号 (値無し) |
location.port | $_SERVER['SERVER_PORT'] |
| ハッシュ(#xxxの部分) | location.hash | - |