アクセスされているページが分かる!PHPでURLを取得する方法【初心者向け】
プログラミング初心者向けにPHPで現在アクセスされているページのURLを取得する方法について解説しています。$_SERVER変数を使うことでサーバーに格納している情報を取得することができます。書きながら覚えていきましょう。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
PHPでは、今現在ブラウザでアクセスしているURLを取得することが出来ます。
この取得したURLをアクセスランキングとして計測したり、URLの内容によってデータベースへ問い合わせて、ページの表示内容を変えることも出来ます。
URLを取得するには、PHPのスーパーグローバル変数である$_SERVERを利用します。$_SERVERにはヘッダ情報、パス情報、スクリプトの位置のような情報が格納されています。このスーパーグローバル変数には、PHPプログラムならどこからでも参照することが出来ます。

田島メンター!1つのWebサイトにいろいろページってあると思うんですけど、今見られているページのURLってどうやって分かるんですか?

つまり、アクセスしてるページを確認したいってことだよね!?

そうです!!

$_SERVER変数を使うとサーバーに関する情報を取得できるからやり方を詳しく説明するね♪
アクセスされているページのURLを取得する書き方
URLは、おおざっぱに「プロトコル名://ホスト名/ページ名」で構成されています。
アクセスされているページ自体のURLを取得する方法
$_SERVER["REQUEST_URI"]
httpやhttpsなどのプロトコル名やサーバーのドメイン名(ホスト名)を除いた、ページURLが入っています。リクエストは要求という意味なので、ブラウザに要求されたURI(URL)の一部という意味になります。
アクセスされているページのホスト名を取得する方法
$_SERVER["HTTP_HOST"]
サーバーのドメイン名を表示します。URLは、プロトコル名+ドメイン名+ページ名の形になっています。
アクセスされているページのプロトコル名を取得する方法
(empty($_SERVER["HTTPS"]) ? "http://" : "https://")
httpやhttpsなどのプロトコル名を表示します。HTTPSではなかったら、$_SERVERのHTTPSは空になっています。
空だったらhttpを、そうではなかったらhttpsを表示するようにします。
三項目演算子は、「?」が真だった場合。「:」が偽だった場合になります。emptyはもし変数が空だったら真で、空でなかったら偽という意味になります。
実際に書いてみよう
実際に書いて出力結果を見てみましょう。
ファイル名・・・test3.php
<?php echo $_SERVER['REQUEST_URI']; echo "<br>"; echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; echo "<br>"; echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
実行結果
/test/test3.php localhost/test/test3.php http://localhost/test/test3.php
localhostの/test/フォルダのtest3.phpで実行しました。ページ自体のURLが/test/test3.phpになっています。
ホスト名がlocalhost。プロトコルがhttpになっています。
[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中
まとめ
以上、URLを取得する流れを解説しました。
閲覧されているページを確認することができるので、ぜひ書き方を覚えておきましょう。

$_SERVERって便利なんですね!

そうだね!いろんな情報が入ってるから役に立つ変数だと思うよ!

ありがとうございますっ!
また、PHPを勉強していて、
- もっと効率的に勉強したい
- 誰かに聞きながら学びたい
- 自分でWebサービスを作りたい
と思ったことはないでしょうか。
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。
独学に限界を感じている場合はご検討ください。