現在のURLやファイル名の取得とリファラーの取得方法
2012-10-24 734 1864システムを構築中に今現在のURL(自身のURL)やファイル名を取得したいというケースがちょくちょく出てきます。サーバ環境変数に格納されているので取得は簡単です。
<?phpSERVER_NAMEとREQUEST_URIを使えば現在のURLを完全に取得できます。
/*
現在のURLが以下だった場合
https://pinkmonky.net/test.php?id=47&cate=5
*/
echo $_SERVER['SERVER_NAME'];
echo $_SERVER['REQUEST_URI'];
echo $_SERVER['PHP_SELF'];
echo $_SERVER["SCRIPT_NAME"];
//表示結果
blog.pinkmonky.net
/test.php?id=47&cate=5
/test.php
/test.php
?>
<?phpあと、現在のページはどのページから飛んできたのかというを知りたい場面もよく出てきます。それをリファラーといいます。アクセス解析のシステムでは重宝します。
echo 'https://'.$_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI'];
//表示結果
https://pinkmonky.net/test.php?id=47&cate=5
?>
<?phpリファラーは他ドメインの場合もあるのでURL全てが取得されます。そして、URLをパース(解析)する関数もあります。
echo $_SERVER['HTTP_REFERER'];
//結果
https://pinkmonky.net/test.php?id=47&cate=5
?>
<?php
$url = 'https://pinkmonky.net/test.php?id=47&cate=5';
print_r(parse_url($url));
//表示結果
Array
(
[scheme] => http
[host] => blog.pinkmonky.net
[path] => /test.php
[query] => id=47&cate=5
)
?>