我好像有鬼。我正在加载一个页面(通常在另一个页面中加载,如果有帮助,但是当我自己加载页面时仍然会出现错误)并且在输出的顶部,在其他所有内容之前,我得到一个随机的false
.
期间输出$this->load->view('my_view');
。我去调查了 CodeIgniter 系统文件,发现在_ci_load($_ci_data)
方法中,有一行写着ob_start();
. 当我在这段代码周围加上这样的行时:
echo "hey!";
ob_start();
echo "here!";
我得到的输出是hey!falsehere!
.
我发现我可以阻止输出的唯一方法是在代码中的某个位置之前false
放置另一个。ob_start()
我在控制器、视图、视图加载器和 CodeIgniter.php 本身中摆弄了不同的位置。这是我发现它中断的地方:
// Is there a "remap" function? If so, we call it instead
if (method_exists($CI, '_remap'))
{
$CI->_remap($method, array_slice($URI->rsegments, 2));
}
如果我ob_start()
在调用 to 之前放置_remap
,false
则消失;如果我之后把它放正,false
仍然会出现。
有谁知道该怎么做?我知道这是一个非常困难且晦涩的问题,但我不知道下一步应该采取什么措施。任何关于问题可能来自何处的建议都非常受欢迎。
我正在运行 PHP 5.4.30,使用 CodeIgniter 2.1.4(可能是更新时间......)