アクセスされているページが分かる!PHPでURLを取得する方法【初心者向け】
プログラミング初心者向けにPHPで現在アクセスされているページのURLを取得する方法について解説しています。$_SERVER変数を使うことでサーバーに格納している情報を取得することができます。書きながら覚えていきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PHPでURLを取得する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PHPでは、今現在ブラウザでアクセスしているURLを取得できます。
この取得したURLをアクセスランキングとして計測したり、URLの内容によってデータベースへ問い合わせて、ページの表示内容を変えることもできます。
URLを取得するには、PHPのスーパーグローバル変数である$_SERVERを利用します。
$_SERVERにはヘッダ情報、パス情報、スクリプトの位置のような情報が格納されています。
このスーパーグローバル変数には、PHPプログラムならどこからでも参照できます。
目次
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
田島メンター!1つのWebサイトにいろいろページってあると思うんですけど、今見られているページのURLってどうやって分かるんですか?
つまり、アクセスしてるページを確認したいってことだよね!?
そうです!!
$_SERVER変数を使うとサーバに関する情報を取得できるからやり方を詳しく説明するね♪
アクセスされているページのURLを取得する書き方
URLは、おおざっぱに「プロトコル名://ホスト名/ページ名」で構成されています。
アクセスされているページ名を取得する方法
$_SERVER["REQUEST_URI"]
httpやhttpsなどのプロトコル名やサーバのドメイン名(ホスト名)を除いた、ページ名が入っています。
リクエストは要求という意味なので、ブラウザに要求されたURI(URL)の一部という意味です。
アクセスされているページのホスト名を取得する方法
$_SERVER["HTTP_HOST"]
サーバのドメイン名を表示します。
URLは、プロトコル名+ドメイン名+ページ名の形になっています。
アクセスされているページのプロトコル名を取得する方法
(empty($_SERVER["HTTPS"]) ? "http://" : "https://")
httpやhttpsなどのプロトコル名を表示します。
httpsではなかったら、$_SERVERのHTTPSは空です。
空だったらhttpを、そうではなかったらhttpsを表示するようにします。
三項目演算子は、「?」が真だった場合で、「:」が偽だった場合になります。
emptyは、もし変数が空だったら真で、空でなかったら偽という意味です。
実際に書いてみよう
実際に書いて出力結果を見てみましょう。
URL・・・http://localhost/test/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で実行しました。
ページ名が/test/test3.php。
ホスト名がlocalhost。
プロトコルがhttpになっています。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
まとめ
以上、URLを取得する流れを解説しました。
閲覧されているページを確認できるので、ぜひ書き方を覚えておきましょう。
$_SERVERって便利なんですね!
そうだね!いろんな情報が入ってるから役に立つ変数だと思うよ!
ありがとうございますっ!
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!