我是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();
}
?>
答案 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()