Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 你开始不工作了_Php_Codeigniter - Fatal编程技术网

Php 你开始不工作了

Php 你开始不工作了,php,codeigniter,Php,Codeigniter,我不熟悉PHP和CodeIgnitor,在尝试将动态数据内容转换为静态html文件时遇到了一些问题。这是一段代码。当我请求代码段文件时,它只打印错误111111111,而不打印其他内容。无法理解这里的错误是什么 这是我的原始代码,这里我试图生成带有动态内容的静态html文件。这对我不起作用 <?php echo "Error 111111111"; ob_start(); $fileName = "sample.html"; ?> <html> &

我不熟悉PHP和CodeIgnitor,在尝试将动态数据内容转换为静态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();
    }      

?>

这里有一些html
我没有看到错误

ob\u start()
抑制所有输出,直到调用
ob\u flush()
。您没有调用
ob\u flush()
,因此
ob\u start()
之后不会输出任何内容。这就是你看到的,这正是它应该工作的方式

我想真正的问题是你想实现什么

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

那你想在这里做什么?这个问题的答案可能会帮助我们为您提供更多指导。

我看不出有错误吗

ob\u start()
抑制所有输出,直到调用
ob\u flush()
。您没有调用
ob\u flush()
,因此
ob\u start()
之后不会输出任何内容。这就是你看到的,这正是它应该工作的方式

我想真正的问题是你想实现什么

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


那你想在这里做什么?这个问题的答案可能会帮助我们为您提供更多的指导。

ob_start标记缓冲输出应该开始的位置,但您也必须告诉PHP结束缓冲并输出当前内容:

ob_start标记缓冲输出应该开始的位置,但是,您还必须告诉PHP结束缓冲并输出当前内容:

您希望它打印什么?您希望它打印什么?如果没有这样的错误,那么为什么它不打印echo“error 2222”@Yashwant Chavan-好的,你现在已经完全更改了代码,“22222”只适用于问题的第一个版本。但根据最初的问题,“22222”确实会打印,但由于调用了ob_start,它会存储在输出缓冲区中,而不是提供给浏览器。如果您调用ob_flush,它将被发送到浏览器。然而,您的更新代码是完全不同的:它确实使您更容易看到您实际尝试执行的操作,但我需要编写一个全新的答案来帮助您理解它@Yashwant Chavan-好的,你现在已经完全更改了代码,“22222”只适用于问题的第一个版本。但根据最初的问题,“22222”确实会打印,但由于调用了ob_start,它会存储在输出缓冲区中,而不是提供给浏览器。如果您调用ob_flush,它将被发送到浏览器。然而,您的更新代码是完全不同的:它确实使您更容易看到您实际试图做什么,但我需要编写一个全新的答案来帮助您理解它。