PHP ob_start无效

时间:2011-01-21 10:34:32

标签: php codeigniter

我是PHP和Code Ignitor的新手,在尝试将动态数据内容转换为静态html文件时遇到了一些问题。这是代码段。当我请求代码片段文件时,它只打印错误111111111。无法理解这里的错误。

这是我原来的代码,我在这里尝试生成带有动态内容的静态html文件。它对我不起作用

<?php
    echo "Error 111111111";
    ob_start();
    $fileName = "sample.html";
?>
<html>
<body>
    Some html is here       
</body>
</html>
<?php
    try{ 
           $output = ob_get_contents(); // get contents of trapped output

            //write to file, e.g.
           $newfile = $fileName; 
           $file = fopen ($newfile, "w"); 
           fwrite($file, $output); 
           fclose ($file);  
           ob_end_clean(); // discard trapped output and stop trapping
    }catch (Exception $ex){                
      echo "Error ".$ex->getMessage();
    }      

?>

2 个答案:

答案 0 :(得分:3)

我没有看到错误?

ob_start()被调用之前,

ob_flush()会抑制所有输出。你没有打电话给ob_flush(),所以在ob_start()之后不会输出任何内容。这就是你所看到的,而这正是它的工作方式。

我想真正的问题是你想要实现的目标是什么?

代码段非常混乱,因为ob_start()不会生成任何异常,但您已将其放入try / catch块中。您的catch部分永远不会被调用,因为try块中的任何内容都不会产生任何异常。

那你想在这做什么?答案可能有助于我们为您提供更多指导。

答案 1 :(得分:1)

ob_start标记缓冲输出应该从哪里开始,但是AFAIK你还必须告诉PHP结束缓冲并输出当前内容:ob_end_flush()