假设我有一个由5行文本组成的文件,每行有50个字符。正确返回输出缓冲区内容但如果我有一个包含100行文本的文件,则输出缓冲区将返回空字符串(值为null的字符串)。
我是这样做的:
ob_start();
include "file.php"
$string = ob_get_contents();
ob_end_clean();
OR
$string = $this->load->view('view', $data, true);
我在codeigniter中执行此操作,如果这有任何区别。
我尝试使用Code igniter的load->视图函数加载文件,第三个参数设置为true,结果相同。试图给ob_start()一个大数字 - > ob_start(9999999);同样的结果;
答案 0 :(得分:1)
我建议使用ob_get_flush来确保在某些内部缓冲区中仍然保留。
非常不可能,但这会代替您的代码打印什么?
require_once( "file.php" );
只是为了确保file.php
中的内容不被<?php /** **/ php?>
包围。
那是什么
echo ob_get_level();
在代码之前输出?如果已启用其他outbut-buffering,则不应该相关,但是......
答案 1 :(得分:0)
你只需要在index.php中添加一些行(CodeIgniter的根目录)
ob_start();
/ * * ------------------------------------------------- -------------- *应用环境 * ------------ +
require_once BASEPATH.'core/CodeIgniter.php';
$data = ob_get_contents();
ob_clean();
echo $data; /// or anything else
就是这样!
答案 2 :(得分:-1)
为什么使用ob函数来获取文件的内容?为什么不是file_get_contents?