我有一个文件B590.php,它有很多HTML代码和一些PHP代码(例如登录用户名,用户详细信息)。
我尝试使用$html = file_get_content("B590.php");
但是$html
将B90.php的内容作为纯文本(使用php代码)。
是否有任何方法可以在评估文件后获取文件内容? 似乎有许多相关的问题,如this one和this one,但似乎没有任何明确的答案。
答案 0 :(得分:5)
您可以使用include()
执行PHP文件并输出缓冲以捕获其输出:
ob_start();
include('B590.php');
$content = ob_get_clean();
答案 1 :(得分:3)
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
上答案 2 :(得分:1)
如果使用include
或require
,文件内容的行为就像当前正在执行的文件包含该B590.php
文件的代码一样。如果您想要的是该文件的“result”(即输出),您可以这样做:
ob_start();
include('B590.php');
$html = ob_get_clean();
示例:
B590.php
<div><?php echo 'Foobar'; ?></div>
current.php
$stuff = 'do stuff here';
echo $stuff;
include('B590.php');
将输出:
在这里做事 &LT; DIV&GT; Foobar的&LT; / DIV&GT;
然而,如果current.php看起来像这样:
$stuff = 'do stuff here';
echo $stuff;
ob_start();
include('B590.php');
$html = ob_get_clean();
echo 'Some more';
echo $html;
输出将是:
在这里做事 还有一些 &LT; DIV&GT; Foobar的&LT; / DIV&GT;
答案 3 :(得分:1)
要将评估结果存储到某个变量中,请尝试以下操作:
ob_start();
include("B590.php");
$html = ob_get_clean();
答案 4 :(得分:0)
$filename = 'B590.php';
$content = '';
if (php_check_syntax($filename)) {
ob_start();
include($filename);
$content = ob_get_clean();
ob_end_clean();
}
echo $content;