ページへ戻る

− Links

 印刷 

PHP で現在のページのURIを取得する方法のまとめ :: XOOPS マニア

UsersWiki:nao-pon/blog/2008-09-04


RSS of nao-pon/blog[5]
2008 9月 4 (木)
 

PHP で現在のページのURIを取得する方法のまとめ anchor.png[6]

Tag: PHP[7] Tips[8] メモ[9]

Xoops Users Group Japan - Re: urlencode されていないクエリが含まれる時の問題[10] で GIJOE さんに解説していただいたので、そのまとめ。というかほぼ転記。

$_SERVER['REQUEST_URI']
IISでは設定されない。ただし、これが設定されてない環境でも、XOOPS[11]環境化では common.php の処理で設定し直されるので、common.php 以降の処理であれば利用可能。
? 以降のクエリ文字列も含まれる。
$_SERVER['PHP_SELF']
CGI版でもIISでも正しく設定される。ただし、PATH_INFOを含む。
$_SERVER['SCRIPT_NAME']
CGI版では実際に処理する実行可能スクリプト("/cgi-bin/php"など)となるケースがある。(suPHPな環境ではおそらく大丈夫)

やっぱり、先達はすごいなぁ。勉強になりました。 :-)

ということで、PATH_INFO やクエリ文字列を含まない URI を取得する最も確実な方法は

$uri = $_SERVER['PHP_SELF'];
if (isset($_SERVER['PATH_INFO'])) {
    $uri = preg_replace(
             '#' . preg_quote($_SERVER['PATH_INFO']) . '$#',
             '',
             $uri
           );
}

ということになる。



Last-modified: 2008-09-04 (木) 09:45:51 (JST) (6343d) by nao-pon