3

我有一个文件 B590.php,它有很多 html 代码和一些 php 代码(例如登录的用户名、用户的详细信息)。

我尝试使用$html = file_get_content("B590.php");

但随后$html将 B90.php 的内容作为纯文本(带有 php 代码)。

有什么方法可以在评估文件后获取文件的内容?似乎有很多相关的问题,比如这个这个,但似乎没有一个有明确的答案。

4

5 回答 5

5

您可以使用include()执行 PHP 文件和输出缓冲来捕获其输出:

ob_start();
include('B590.php');
$content = ob_get_clean();
于 2012-10-23T10:18:16.057 回答
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

于 2012-10-26T09:41:19.100 回答
1

如果您使用includerequire文件内容将表现得好像当前正在执行的文件也包含该文件的代码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>

于 2012-10-23T10:26:07.170 回答
1

要将评估结果存储到某个变量中,请尝试以下操作:

ob_start();
include("B590.php");
$html = ob_get_clean();
于 2012-10-23T10:30:06.230 回答
0
$filename = 'B590.php';
$content = '';

if (php_check_syntax($filename)) {
    ob_start();
    include($filename);
    $content = ob_get_clean();
    ob_end_clean();
}

echo $content;
于 2012-10-23T10:26:12.237 回答