ファイル名によりサイドバーのデザインを自動切替
ウェブページやブログでは、サイドバーのデザインが統一されていて、全ページ同じ場合がよくあります。これをファイル名によって自動的に別のデザインになるようにPHPを使ってやってみました。
PHPを使ってファイル名を取得します
PHPの substr() 機能を使います
substr() の機能は文字列の一部分を取り出すことです。
substr(string, start, [length])
substr() は文字列 string の、 start で指定した位置から length バイト分の文字列を取り出して返します。 start が正の場合、取り出される文字列は、 string の 0 から数えて start 番目から始まる文字列となります。
start が負の場合、取り出される文字列は、 string の後ろから数えて start 番目から始まる文字列となります。
PHPの substr() 機能を使ってファイル名を取得します
<?php $f_name = substr($_SERVER['SCRIPT_NAME'],-9,9); ?>
この例では、「$_SERVER['SCRIPT_NAME']」は、サーバーの ドメイン名楽天 の後ろのファイル名を表しています。例えば「hogehoge.jp/index.php」なら「/index.php」を表しています。この中の後ろから9番目の文字から9文字を取り出すと、「index.php」となります。
ファイル名によりサイドバーのデザインを自動切替します
次のように、ファイル名が「index.php」の時の動作と、ファイル名が「index.php」以外の時の動作を切り替えることができます。もちろん、ファイル名が「index.php」以外の時の動作が無い時は、「else」以降を削除します。
サイドバーに限らず、ヘッダーやフッターやメニューなど共通で読み込むファイルには、この方法が使えます。特定のページだけ別の動作をさせたい場合に有効です。
<?php
$f_name = substr($_SERVER['SCRIPT_NAME'],-9,9);
if ($f_name == "index.php"){
ファイル名が「index.php」の時の動作
}
else {
ファイル名が「index.php」以外の時の動作
}
?>
また、否定の演算子を使うことで、判定を逆にすることもできます。HTMLタグをそのまま記述するには次のようにします。
<?php$f_name = substr($_SERVER['SCRIPT_NAME'],-9,9);
if ($f_name != "index.php"){
print <<<EOD
ファイル名が「index.php」以外の時の動作で、HTMLタグをそのまま記述
EOD;
}
?>
ファイル名によりサイドバーの表示を自動で変えるメリット
ファイル名によってデザインが別のファイルを用意する必要が無くなります。例えば、「index.php」の場合は、サイドバーにメニューを表示して、それ以外のページではメニューを表示しないようにできます。ファイルの数が少なくなるので、ファイルの管理が楽になります。
また、インデックスページでは、画像を表示して、それ以外の普通のページでは、表示の速いテキスト表示にすることもできます。要はあなたのアイデア次第です。
