php url 取得

デザイン五輪書

PHPでURLを取得する方法

読了までの目安時間:約 12分

 

にほんブログ村 イラストブログ Photoshopへコンピュータグラフィックス ブログランキングへFC2ブログランキングブログランキングならblogram i2iブログランキング

PHPでURLを取得する方法

はじめに

PHPを使ってURLを表示する!?

PHPを使う事で表示中のページのURLを取得する事ができます。
更に、PHPで指定した文字、変数や関数の結果をブラウザ上に表示する「echo」と言うプログラムと組み合わせる事で、ブラウザ上に、取得したURLを表示する事ができます。

<?php
echo "表示する文字";
?>

今回は、URLに関するPHPスクリプトについてご紹介したいと思います。

▲もくじへ戻る

WordPressで使用する方は要注意

今回の記事の中では、PHPスクリプトを使用した後の結果もご紹介しますが、通常、WordPressの記事内ではPHPを使用する事ができません。
WordPressでのPHPの使用は、「外観」の中にある「テーマ編集」の中で行って下さい。

テーマ編集

表示された「テーマ編集」のページ右側に、各ページの編集画面へのリンクが表示されています。
例えば、ヘッダーを編集したい場合は「ヘッダー」をクリックします。

ヘッダー

表示されたソースコード内にPHPスクリプトを記述すれば、PHPは正常に作動します。

▲もくじへ戻る

$_SERVER変数

$_SERVER変数とは?

URLに関する情報を取得する際に使用するのが「$_SERVER変数」です。
$_SERVER変数とは、サーバーや環境に関する情報を扱う事のできる特殊な配列の事です。

<?php
$_SERVER["指定値"];
?>

URLに関するものだけでもいくつかありますので、一部、ご紹介します。

▲もくじへ戻る

$_SERVER["SERVER_NAME"]

配列$_SERVER["SERVER_NAME"]は、PHPが実行されているサーバーのホスト名を取得する事のできるPHPスクリプトです。
「echo」と組み合わせると、以下のようになります。

<?php
echo $_SERVER["SERVER_NAME"];
?>

PHPを実行すると、このように表示されます。

xn--eck9awc8j.biz

取得するのはホスト名の部分のみですので、「http://」やサブディレクトリは含みません。

▲もくじへ戻る

$_SERVER["HTTP_HOST"]

配列$_SERVER["HTTP_HOST"]は、ブラウザがリクエストを試みたホスト名を取得する事のできるPHPスクリプトです。
「echo」と組み合わせると、以下のようになります。

<?php
echo $_SERVER["HTTP_HOST"];
?>

PHPを実行すると、このように表示されます。

xn--eck9awc8j.biz

$_SERVER["HTTP_HOST"]も取得するのはホスト名の部分のみですので、「http://」やサブディレクトリは含みません。

▲もくじへ戻る

$_SERVER["PHP_SELF"]

配列$_SERVER["PHP_SELF"]は、PHPファイル自身のファイル名とルートフォルダ名を取得する事ができます。
「echo」と組み合わせると、以下のようになります。

<?php
echo $_SERVER["PHP_SELF"];
?>

PHPを実行すると、このように表示されます。

/index.php

ファイル名を表すので、最後は「index.php」で終わります。
ですので、WordPressでパーマリンクを設定している場合は、アドレスバーに表示されているURLと取得するURLは異なってしまいます。

▲もくじへ戻る

$_SERVER["REQUEST_URI"]

配列$_SERVER["REQUEST_URI"]は、ブラウザがリクエストを試みたURIを取得する事ができます。
URI(統一資源識別子)とは、URLにURNを加えた、URLより広義な意味での識別子の事です。
これに「echo」と組み合わせると、以下のようになります。

<?php
echo $_SERVER["REQUEST_URI"];
?>

PHPを実行すると、このように表示されます。

/get_permalink/

これならば、パーマリンクの設定まで読み込んでくれますので、URLの取得に使えそうです。

▲もくじへ戻る

PHPを組み合わせる

これまでに紹介したPHPスクリプトを組み合わせて、サイトのURLを取得してみましょう。
PHPスクリプトの組み合わせの際は、「.」を使います。
組み合わせるPHPスクリプトとしては、配列$_SERVER["HTTP_HOST"]と配列$_SERVER["REQUEST_URI"]の組み合わせはどうでしょう?

<?php
$host = $_SERVER["HTTP_HOST"];
$file = $_SERVER["REQUEST_URI"];
echo "http://" . $host . $file; 
?>

PHPを実行すると、このように表示されます。

http://xn--eck9awc8j.biz/get_permalink/

どうやら、上手く行ったようです。

▲もくじへ戻る

WordPressのテンプレートタグ

WordPressならば、もっと簡単に!?

サイトがWordPressで作られている場合、前述したようなPHPスクリプトの組み合わせを考える必要はありません。
WordPressには事前に便利なテンプレートタグがいくつか用意されています。
それを使う事で、もっと簡単に色々な事ができるようになるのです。

これから紹介する内容はWordPress限定のテクニックです。
自分で作ったPHPファイルで同様のプログラムを入力しても、特に何も起こりません。
間違えないようにして下さい。

▲もくじへ戻る

表示中のページのURLを取得

前述しましたPHPスクリプトの組み合わせと同じく、表示中のページのURLを取得するWordPressのテンプレートタグが存在します。
表示中のページのURLを取得する際はパーマリンクタグと呼ばれる種類のテンプレートタグを使用します。
「echo」と組み合わせると、こうなります。

<?php
echo get_permalink();
?>

これを記述すると、以下のように表示されます。

http://xn--eck9awc8j.biz/get_permalink/

たったこれだけの記述で同じ働きをするとは、WordPressのテンプレートタグには驚かされますね。

▲もくじへ戻る

トップページのURLを表示する

WordPressに設定した様々な情報を表示する際に使用するのが「bloginfo()」と言うテンプレートタグです。
「()」の中に指定した引数を表示してくれるのですが、ここに「url」と記述する事で、トップページのURLを取得する事ができます。
「echo」と組み合わせてみます。

<?php
echo bloginfo('url');
?>

これを記述すると、以下のように表示されます。

http://xn--eck9awc8j.biz

ちなみに、「home_url()」と言うテンプレートタグも同じ働きをします。

<?php
echo home_url();
?>

これを記述すると、以下のように表示されます。

http://xn--eck9awc8j.biz

▲もくじへ戻る

bloginfo()で取得できるあれこれ

先ほど紹介した「bloginfo()」と言うテンプレートタグですが、「()」の中に「stylesheet_url」と記述する事で、スタイルシートのURLを取得する事ができます。

<?php
echo bloginfo('stylesheet_url');
?>

「rss2_url」と記述すると、RSSのURLを取得する事ができます。

<?php
echo bloginfo('rss2_url');
?>

更に、「template_url」と記述すると、使用中のテーマのURLを取得できます。

<?php
echo bloginfo('template_url');
?>

他にも、「name」でサイトのタイトル、「description」でキャッチフレーズを取得する事ができます。

カスタマイズ

とても便利ですよね?

今回ご紹介したものは、「bloginfo()」で取得できるものの一部です。
興味のある方は、更に調べてみると、WordPressの改造の幅が広がりますよ。

▲もくじへ戻る

まとめ

方法は一つではない

今回は、PHPでURLを取得する方法と、WordPressのテンプレートタグについてご紹介しました。
当サイトはWordPressで作られていますので、どちらかと言えばテンプレートタグの方の出番が多いですが、両方の方法を知っておくと、様々な場面で役に立つと思います。
あなたも頑張って使いこなしてみて下さい。

この記事によって、あなたのサイトの表現の幅が広がる事を願っています。

にほんブログ村 イラストブログ Photoshopへコンピュータグラフィックス ブログランキングへFC2ブログランキングブログランキングならblogram i2iブログランキング

タグ : 

ホームページ作成 Webデザイン   コメント:0

この記事に関連する記事一覧

TOPへ戻る