PHPで現在のページのURLを取得する

$_SERVER[‘SERVER_NAME’]でサーバーのホスト名が取得できます。

このサイトだと、になります。

$_SERVER[‘PHP_SELF’]は、現在実行しているスクリプトのファイル名をドキュメントルートから取得できます。

この記事だと…

となります。
すると、Wordpressだとパーマリンク設定していますので、表示URLとは異なる結果が出ちゃってます。
非常にやりづらいですね(笑)。

また、WordpressのようにPHPによりページが生成されている場合、パーマリンクの設定をしていなければ、URLの後ろに「?」を挟んで、検索クエリーが表示されているはずです。

検索クエリーの取得は、$_SERVER[‘QUERY_STRING’]でできます。
このサイトではパーマリンク設定をしていますので、残念ながら以下のPHPコードでは何も表示されませんでした。

 echo $_SERVER['QUERY_STRING']; 

嗚呼、Wordpressだと非常に説明しづらい状況に陥ってしまいました。この記事を読まれた方は、是非ご自身のWEBサイトでお試しください。

ということで、グダグダになってしまいましたが、以下のように先頭にhttp://を付けて$_SERVER[‘SERVER_NAME’]と$_SERVER[‘PHP_SELF’]をつなげると、現在のページのURLを表示できます。

 echo 'http://' . $_SERVER['SEVER_NAME'] . $_SERVER['PHP_SELF'] ; 
PHP, 備忘録 |