假设我有一个包含5行文本的文件,每行有50个字符。输出缓冲区内容正确返回,但如果我有一个包含100行文本的文件,输出缓冲区返回空字符串(值为null的字符串)。
我是这样做的:
ob_start();
include "file.php"
$string = ob_get_contents();
ob_end_clean();
或
$string = $this->load->view('view', $data, true);
我是在codeigniter中做的,如果这有什么不同的话。
我尝试用Code点火器的load->视图函数加载文件,第三个参数设置为true,结果是相同的。也尝试给ob_start()一个大的数字-> ob_start(9999999);相同的结果;
我建议使用ob_get_flush来确保没有任何东西仍然保留在一些内部缓冲区中 .
不太可能,但是这个代替你的代码打印什么呢?
require_once( "file.php" );
只是为了确保file.php
中的物质没有被<?php /** **/ php?>
包围。
echo ob_get_level();
输出在你的代码之前?如果已经启用了其他输出缓冲,则应该不相关,但是…
为什么要使用ob函数来获取文件的内容?为什么不是file_get_contents?
你只需要添加一些行index.php (CodeIgniter的根)
ob_start();
/**---------------------------------------------------------------*应用环境*------------+
require_once BASEPATH.'core/CodeIgniter.php';
$data = ob_get_contents();
ob_clean();
echo $data; /// or anything else