文字列をハードコードされた文字と別のファイルの内容の組み合わせとして定義しようとしています。私が試したのはこれです。
$html = "<h1>
".file_get_contents("file.php", TRUE)."
<h1>";
問題は、生のテキストのみがfile.phpから返されることです。PHPがエコーすることになっているものが何であれ、エコーされていません。
文字列をハードコードされた文字と別のファイルの内容の組み合わせとして定義しようとしています。私が試したのはこれです。
$html = "<h1>
".file_get_contents("file.php", TRUE)."
<h1>";
問題は、生のテキストのみがfile.phpから返されることです。PHPがエコーすることになっているものが何であれ、エコーされていません。
これを行うには、出力バッファリングが必要です。
function generate_h1()
{
ob_start();
include('file.php');
return '<h1>' . ob_get_clean() . '</h1>';
}
$html = generate_h1();
の代わりにinclude
またはを使用する必要があります。ローカルファイルを実行せず、その内容(プレーンテキストのPHPコード)を取得するだけです。require
file_get_contents
file_get_contents
file_get_contents()はファイルの実際のソースを返し、それをスクリプトとして使用しません。必要なのはどちらかです
include 'file.php'; //or
require 'file.php';
またはそれ以上
include_once 'file.php';
require_once 'file.php';
これは、file.phpで関数が宣言されている場合に適しています。ファイルを2回インクルードすると、関数が2回以上宣言されたことを示すエラーがスローされます。したがって、ファイルに何かが発生した場合に備えて、それがなくても生きていけるものである場合はinclude_onceを、ファイルが存在しない場合は致命的なエラーが発生するrequire_onceを指定します。