概要
複数以上のページから構成されるサイトを作っていて、大元のサイト名をいちいちtitle属性に書くのってスマートじゃないし保守しにくいですよね。
今回は文字列連結だけの最小のPHPコードで各ページのタイトル生成処理を実装したので、備忘として残しておきます。
やっていきましょう
呼び出し側(クライアント)のphp(index.php)とサーバーサイド処理のphpソース(Title.php)を用意します。
index.php
およびTitle.php
は同一ディレクトリ内にありますが、パスの指定をするときは必ず最初に/
をつけてあげます。
__DIR__
や dirname(__FILE__)
で指定したディレクトリの末尾には/
がつかないためです。
index.php
<?php
// タイトル連結
require_once(__DIR__ . "/Title.php");
// HPタイトル生成
$page = 'トップページ';
$title = getTitle($page);
?>
<!doctype html>
<html lang="ja">
<head>
<!-- favicon -->
<meta charset="UTF-8">
<meta name="description" content="hogehoge">
<meta name="viewport" content="width=device-width">
<title><?php echo $title ?></title>
</head>
<body></body>
</html>
Title.php
<?php
// HPタイトル生成
function getTitle($str) {
$title = $str.' | ほげほげさんのサイト';
return $title;
}
?>
あとは各画面の.phpから getTitle($page)
を呼び出してあげるだけです。
疑問点…
呼び出し側(クライアント)のphp(index.php)とサーバーサイド処理のphpソース(Title.php)を用意します。
このとき、サーバーサイド処理だけを書いた.phpファイル名を慣習的に大文字で始めてしまい、phpファイルの中に大文字と小文字始まりが混在することに現状なってしまっているのですが、この方法は適切なのでしょうか。。?どなたかご教示いただけましたら幸いです。
また、もしPHPを使ってこれよりも効率的な方法がありましたら、コメントなどでご教示いただけると大変助かりますo( _ _)o