dポイントプレゼントキャンペーン実施中!

 PHPやASPなどのサーバーサイドスクリプトで、全てのページにメニューなどを表示させて、フレームみたいなものを作るのがよくありますが、あれってどのように作ってますか?
 僕はそれぞれのファイルに
<?php
function display_html(){
print <<<HJK
ページの本文
HJK;
} ?>
 として、フレームファイルindex.phpでdisplay_html()を呼び出してフレームを作成しているのですが、一般的にはどうなのかな、と思いまして。

A 回答 (4件)

私も #1 さんの方法を使う事が多いですね。


逆の方法もありますね。
ベースの物をindex.phpに作っておいて、
--------index.php----------
<html>
<head>...........
<body>
...........以上、共通部分
<?php
if ( ereg("^[0-9]+$", $_GET["p"] ){
include ($_GET["p"].".inc.php");
}
?>
....以下共通部分
</body>
</html>
------------------------------
みたいにしてindex.php?p=123 で123.inc.phpを呼び出したりする方法とか。
最近ではSmartyのようなテンプレートエンジンを使っている事も多いと思います。
http://gigazine.net/index.php?/news/comments/200 …

参考まで。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。
 そういえば、Smartyもありましたね。・・・ってこんなにテンプレートエンジンは種類があるんですか。すごいですね・・・。

お礼日時:2007/03/27 11:52

私はSmartyで共通テンプレートを作成しておいて、個別テンプレートから


共通テンプレートをインクルードしてます。

因みにワークフレームではなく、フレームワーク。
骨格になり、独自処理を埋め込むだけで、決まった動作の下に自動的に処理を呼び出してくれます。
私はEthnaとZendFrameworkをいじってます。

もしかしたらついでにMVCモデルについても勉強された方が良いかもしれませんね。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。
 MVCモデルというのもあるのですか。PHPは他の言語に比べると勉強することは少ないと思っていましたが、深くやろうとするとひたすら深いですね・・・。

お礼日時:2007/04/01 01:32

私の場合は、サンプルは無いですが、ワークフレームの機能で、フィルターで実現します。


mojavi とか、mapleとか、ethna とか。
あとは、テンプレートエンジンに渡して表示というところです。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。
 ワークフレームというものもあるのですか。検索してみたら、なかなか面白そうなので、いずれ勉強してみたいと思います。

お礼日時:2007/03/28 17:37

一般的と言われますと困りますが私の場合は以下のような感じです。



<html>
<head>
<title>ページタイトル</title>
</head>
<body>
<?php include("menu.php"); ?>
<!-- ページ本文 -->
</body>
</html>

menu.php には共通のメニュー部分だけ記述してあり include 関数により呼び出された位置で表示されます。ページごとに違いを持たせたい場合は呼び出しの前に変数を定義しておけばその変数を menu.php 内部で使用できます。

この方法だと各ページの記述が少なくてすむので重宝してます。

参考URL:http://jp.php.net/manual/ja/function.include.php
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。
 各ファイルでメニューを呼び出す手法ですね。確かに僕の手法だと、フレームファイルのプログラム記述量が多くて大変でした。

お礼日時:2007/03/27 11:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!