我正在尝试将字符串定义为硬编码字符和另一个文件内容的组合。我试过的就是这个。
$html = "<h1>
".file_get_contents("file.php", TRUE)."
<h1>";
问题是只从file.php返回原始文本。无论PHP应该回应什么都没有被回应..
答案 0 :(得分:1)
您需要output buffering来执行此操作:
function generate_h1()
{
ob_start();
include('file.php');
return '<h1>' . ob_get_clean() . '</h1>';
}
$html = generate_h1();
另请参阅:ob_start()
ob_get_clean()
答案 1 :(得分:0)
您需要使用include
或require
代替file_get_contents
。 file_get_contents
不会执行本地文件,只是获取其内容 - 纯文本PHP代码。
答案 2 :(得分:0)
file_get_contents()返回文件的实际来源,不会将其用作脚本。你需要的是
include 'file.php'; //or
require 'file.php';
或更好
include_once 'file.php';
require_once 'file.php';
如果您在file.php中声明了函数,那么这样做会更好。如果你包含一个文件两次,它将抛出一个错误,说明一个函数被多次声明。所以include_once如果它是你可以存活的东西,如果文件发生了什么,或者如果文件不存在则会导致致命错误的require_once。