[PHP-users 18502]Re: 変数に格納したヒアドキュメント

Misha misha @ mbm.nifty.com
2003年 10月 18日 (土) 12:37:14 JST


こんにちは。ミーシャです。

結論から書いてしまうと、
HTMLに限らず、ファイルとして読み込んだテキストは、
シングルクォートで囲まれた文字列と同じことになります。
したがって、ヒアドキュメントに限らず、
どのような表示方法を用いても、変数名は変数名そのまま表示されてしまうことでしょう。

私も、このような例では、上手い解決策が見当つかず、
結局、地味ですが、以下のように正規表現を使って処理をしています。

=================================================-
<?PHP
$TITLE = "TEST PAGE";
$hoge = "Hello World";

$patt = array();
$repl = array();
$patt[] = '/\$TITLE/'; $repl[] = $TITLE;
$patt[] = '/\$hoge/'; $repl[] = $hoge;

$html = preg_replace($patt, $repl, file_get_contents('foo.inc'));
print $html;
?>
=================================================
// <foo.inc>
<HTML>
<HEAD>
<TITLE>$TITLE</TITLE>
</HEAD>
<BODY>
$hoge<BR>
</BODY>
</HTML>
=================================================

もっと良い方法があれば、私も知りたいところです。

-----------------------------------------
ミーシャ


> -----Original Message-----
> From: php-users-bounces @ php.gr.jp 
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of Dai
> Sent: Saturday, October 18, 2003 11:26 AM
> To: php-users @ php.gr.jp
> Subject: [PHP-users 18501]変数に格納したヒアドキュメント
> 
> こんにちは、DAIといいます。
> 質問させてください。
> 
> HTMLをテンプレートとして使うため、変数に格納したHTMLファイルを
> ヒアドキュメントの中で展開し、その中でPHPスクリプトを実行したり変数を展開したいのですが
> 表示されたHTMLのソースの中では無視され文字としてそのまま表示されてしまいます。
> どうやったら上手くできるでしょうか?
> スクリプトの方は以下のようになっています。
> form.htmlには$hogeなどの変数や<?php 〜 ?>などが入っていても無視されます。
> 
> $html = file_get_contents('form.html');
> echo <<<HIRE
> $html
> HIRE;
> 
> よろしくお願い致します。
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> 
> 




PHP-users メーリングリストの案内