php在获取文件内容之前评估代码

时间:2012-10-23 10:16:04

标签: php file include

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

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

但是$html将B90.php的内容作为纯文本(使用php代码)。

是否有任何方法可以在评估文件后获取文件内容? 似乎有许多相关的问题,如this onethis one,但似乎没有任何明确的答案。

5 个答案:

答案 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)

如果使用includerequire,文件内容的行为就像当前正在执行的文件包含该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;