phpインクルードでページ毎に別の内容を出力

phpインクルードに配列を持たせて出力させる方法。
ページ毎に違った内容を出せるので、パンくずなどに用いると便利です。
今回はパンくずに最適化させたソースの例です。

index.php(html)には、下記のように変数に配列をもたせた形にてインクルードファイルを読み込ませる。

1
2
3
4
<?php
$pankuzu = array('<a href="/">トップ</a>', '<a href="/second/">第二階層</a>', '第3階層');
require($_SERVER['DOCUMENT_ROOT'] . "/include_foldar/pankuzu.php");
?>

次に、インクルード元のデータは下記のようにする。
パンくず数はページ毎に異なってくるかと思うので、今回は配列数分をfor分にてループさせるようにカスタマイズしています。

1
2
3
4
5
6
7
<ol>
<?php
for($i= 0; $i < count($pankuzu); $i++) {
echo "<li>$pankuzu[$i]</li>";
}
?>
</ol>

見やすいように整形しているため実際とは違いますが、上記のファイルが展開されると下記のようになります。

1
2
3
4
5
<ol>
<li><a href="/">トップ</a></li>
<li><a href="/second/">第二階層</a></li>
<li>第3階層</li>
</ol>

これを元にカスタマイズすることで、
ページタイトル部分だけ異なるヘッダーのインクルードファイル、
css等の共通リソースの出し分け(あるページだけ出力しない)
等々、設計の幅を出すことができるかと思います。