ワイの覚書シリーズ
複数のページを作成する際、タイトルやヘッダー情報、ファビコンリンクなどを一括で変更できるよう、リンクをまとめた関数を呼び出す用のphpを作った。
▽呼び出されるphp
function site_assets(){ //サイトの情報類
$assets = array(
'site_title' => 'tomeivideo',
'site_favicon' => './image/favicon.png'
);
return $assets;
}
▽呼び出す側のphp
require_once('./assets.php');
$site_meta = site_assets();
foreach ($site_meta as $key => $value) {
$$key = $value;
}
呼び出される側で連想配列に格納したキー名・要素が、呼び出す側でそのまま変数・内容として利用できる。
呼び出される側にアクセスされると?
呼び出される側のphpでは関数が呼び出されていないため、ご想像の通り真っ白なページが表示される。
なんとなくダサいため、任意のエラーページを表示するようにした。
$url = end(explode("/", $_SERVER['REQUEST_URI']));
$running = end(explode("/", __FILE__));
switch(True){
case "${url}.php" == $running:
$match = true;
break;
case $url == $running:
$match = true;
break;
default:
$match = false;
break;
}
if($match){
readfile('./404.html');
die();
}
呼び出される側のphpファイルの名前と現在のURLを取得し、拡張子あり・なしのそれぞれのパターンで一致しているかを検証する。一致していれば真・一致していなければ偽を$match変数に格納し、下のif文により真であれば任意のhtmlを表示するようにした。