サイト制作において、特定のディレクトリ内のファイルにだけ、他ディレクトリとは部分的に違う表示をさせたい時があります。
このページでは、PHPを使って簡単な条件付き表示を実現するためのコードの記述方法について説明します。
URLに特定の文字列が含まれた場合
例えばURLに「sample」というディレクトリが含まれてた時に「こちらはサンプルページです」と表示させたい場合以下のような記述をします。
<?php
$url = $_SERVER['REQUEST_URI'];
if(strstr($url,'sample')==true):
?>
こちらはサンプルページです
<?php endif; ?>
sample以外のディレクトリの時は何も表示されず、sampleディレクトリ内のファイルだけ指定した文字列が表示されるシンプルなコードですが、pやdiv内に記述する事ができるため色々と応用して使う事が可能です。
▼div内の記述例
<div>
<?php
$url = $_SERVER['REQUEST_URI'];
if(strstr($url,'sample')==true):
?>
こちらはサンプルページです
<?php endif; ?>
</div>
URLに特定の文字列が含まれていない場合
上記とは逆に、URLに「sample」というディレクトリが含まれていない時に「こちらは通常ページです」と表示させたい場合以下のような記述をします。
<?php
$url = $_SERVER['REQUEST_URI'];
if(strstr($url,'sample')==false):
?>
こちらは通常ページです
<?php endif; ?>
「false」を指定する事でsample以外のディレクトリの時は指定した文字列「こちらは通常ページです」が表示されて、sampleディレクトリ内のファイルには何も表示されません。
このPHPコードの特徴
このコードはユーザーがアクセスしたURLに特定の文字列が含まれている場合に、ページに指定したテキストを表示するシンプルな条件付き表示を実現しています。特定のURLに応じてコンテンツをカスタマイズしたり、特定の条件を満たす場合に特定の処理を実行したりするために使用できます。
- URLの一部を取得
$url変数は$_SERVER[‘REQUEST_URI’]を使用して、現在のHTTPリクエストのURI(Uniform Resource Identifier)を取得しています。つまり、ユーザーがアクセスしたURLの一部を含む文字列を保持しています。 - 文字列の検索
strstr()関数を使用して、取得したURI文字列$url内で特定の文字列が含まれているかどうかを検索しています。条件式strstr($url, ‘hoge’) == trueは、「hoge」がURIに含まれている場合に真となります。 - 条件に基づく表示
上記の条件が真(つまり「hoge」がURIに含まれている場合)の場合、指定した文字列が表示されます。この部分はPHPの条件文であり、条件が満たされた場合に実行されるコードブロックを指定します。endifは条件文の終了を示しています。
まとめ
PHPの条件分岐タグの記述方法についていかがでしたでしょうか?簡単な条件付き表示を実現するためのコードですが、特定のURLパターンに応じてコンテンツを変更したり、特定の条件を満たす場合に特定の処理を実行したりする際に使用できますので覚えておくと良いでしょう。