プロが教える店舗&オフィスのセキュリティ対策術

Smartyのテンプレートにincludeしたファイルを表示したいのですが、うまくいきません。

具体的には、意図しない数値が入ってしまいます。
どうすればよいのでしょうか?

■呼び出す側
require("../../libs/Smarty.class.php");

require_once('../../lib/set_include_path.php');
$header = include("header.php");

$smarty = new Smarty();

$smarty->assign("header",$header);

$smarty->display("date.html");

■テンプレート
<body>
{$header}<br>日付<br>

■表示例
include("header.php"); の内容が正常表示
1
日付

include("header.php"); の内容が正常表示された後、勝手に「1」と表示されるので、困ってます。表示されないようにするにはどうすればよいでしょうか。

var_dump($header);ってしたところ、int(1) ってなるので、この1が表示されているのかと思うのですが、なんで表示されるのか、表示されないようにするにはどうすればよいか、教えてください。

A 回答 (1件)

$header = include("header.php");


とした場合、$header の中に header.php の中身が代入されるわけではありません。
include はプログラムのその場所に指定されたファイルの中身を展開してしまいます。
この時 $header にはincludeの実行結果として成功した場合 1 が入り、失敗した場合は FALSE が入ります。

$header の中に header.php の中身を入れたい場合は
$header = file_get_contents("header.php");
とするのがいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
うまく動作するようになりました。
大変勉強になりましたー。

お礼日時:2010/09/15 16:41

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