• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのhtml部分を別に参照したい)

PHPのhtml部分を別に参照する方法

このQ&Aのポイント
  • PHPのhtml部分を別に参照する方法について教えてください。
  • 質問者はPHPのコード内にある特定の部分を別のファイルに分けて参照したいと考えています。
  • 具体的には、PHPのコード内のaとbの部分を別ファイルに保存して関数を使って参照したいとしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tomaju
  • ベストアンサー率76% (84/110)
回答No.2

まず echo <<< EOT; ですが、末尾に ; があるとエラーになるのでは ないかと思いますが、大丈夫でしょうか? そして require だと、その位置にファイルの内容が差し込まれて、 PHPのコードとして処理されて、そこで出力が始まってしまいます。 また require は 成功すると 1 を返します。 ファイルの内容を返すわけではないので、 $a や $b には期待する内容が入っていません。 結果、次のような出力になってしまうかと思います。 ------------------------------------------------ a.htmlの内容 b.htmlの内容 1 $outstr の内容 1 ------------------------------------------------ a.html、b.html の内容がHTMLのみで、PHPのコードが含まれてなければ、 file_get_contents でいったん変数に格納すればよいかと思います。 ------------------------------------------------ $a=file_get_contents('a.html'); $b=file_get_contents('b.html'); echo <<<EOT {$a} {$outstr} {$b} EOT; ------------------------------------------------

spinia0120
質問者

お礼

ご回答ありがとうございます。 >a.html、b.html の内容がHTMLのみで、PHPのコードが含まれてなければ、 >file_get_contents でいったん変数に格納すればよいかと思います。 なるほどです。こういう場合はrequireではなくfile_get_contentsを使えばよかったのですね。 回答1の人にご指摘いただいた点と併せて改善した結果、無事にできました。 本当にありがとうございました。 >require は 成功すると 1 を返します。 これは知りませんでした。stringを返すのではないのですね。

その他の回答 (1)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

$a=require 'a.html'; $b=require 'b.html'; echo <<< EOT; {$a} {$outstr} {$b} EOT; 上記は require 'a.html'; echo $outstr; require 'b.html'; と書きなおせば、OKですね。 requireを使うとPHPパーサーを通す事になって、リソースの無駄遣いという事であれば下のように書いてもいいです。 readfile('a.html'); echo $outstr; readfile('b.html'); あくまで、一旦変数に格納したいというのであれば、file_get_contentsを使います。 $a=file_get_contents('a.html'); $b=file_get_contents('b.html'); echo $a, $outstr, $b; ま、そういう事をしたいときは、Smartyなどのテンプレートシステムを使う方が便利です。

spinia0120
質問者

お礼

ご回答ありがとうございます。 3通りも書き方があるとは知りませんでした。 >Smarty 検討してみます。ありがとうございました。