我有一个文件 B590.php,它有很多 html 代码和一些 php 代码(例如登录的用户名、用户的详细信息)。
我尝试使用$html = file_get_content("B590.php");
但随后$html
将 B90.php 的内容作为纯文本(带有 php 代码)。
您可以使用include()
执行 PHP 文件和输出缓冲来捕获其输出:
ob_start();
include('B590.php');
$content = ob_get_clean();
function get_include_contents($filename){
if(is_file($filename)){
ob_start();
include $filename;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
return false;
}
$html = get_include_contents("/playbooks/html_pdf/B580.php");
这个答案最初发布在 Stackoverflow
如果您使用include
或require
文件内容将表现得好像当前正在执行的文件也包含该文件的代码B590.php
。如果您想要的是该文件的“结果”(即输出),您可以这样做:
ob_start();
include('B590.php');
$html = ob_get_clean();
例子:
B590.php
<div><?php echo 'Foobar'; ?></div>
当前的.php
$stuff = 'do stuff here';
echo $stuff;
include('B590.php');
将输出:
在这里做事
<div>Foobar</div>
然而,如果 current.php 看起来像这样:
$stuff = 'do stuff here';
echo $stuff;
ob_start();
include('B590.php');
$html = ob_get_clean();
echo 'Some more';
echo $html;
输出将是:
在这里做一些事情
<
div>Foobar</div>
要将评估结果存储到某个变量中,请尝试以下操作:
ob_start();
include("B590.php");
$html = ob_get_clean();
$filename = 'B590.php';
$content = '';
if (php_check_syntax($filename)) {
ob_start();
include($filename);
$content = ob_get_clean();
ob_end_clean();
}
echo $content;