PHP 第 0 行缓冲错误 <unknown>
PHP buffering error <unknown> in line 0
任何人都可以帮助我提供有关此错误的任何可能信息吗?原因?登录?去哪里 look/start?
Cannot use output buffering in output buffering display handlers in <**Unknown**> on line **0**
示例代码:
function test($b) { return _strrev($b); }
ob_start("test");
echo "123";
ob_end_flush();
信息:
- 这是 CentOS 6.7
- 这是 PHP PHP 5.5.32 (cli)
- 这不是 Wordpress
- 这是一个简单的 PHP 文件,带有伪代码(以上)
- 无缓存,无 Varnish,无 Nginx,无自定义 headers
谢谢
为了让这个问题对其他人有用,我将以答案的形式总结评论部分。
事实证明,如果您在 ob_start
使用的回调函数中出现编码错误,它会生成这条有点无用的错误消息
在测试中,我在修改提问者显示的回调函数时非常不小心犯了一个愚蠢的错误,我编码了
<?php
function test($b) {
return str-replace('2', 'XXX', $b);
}
ob_start("test");
echo "123";
ob_end_flush();
注意 str_replace()
函数的拼写错误。
这产生了错误
Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0
因此 PHP 似乎无法在 ob_start
回调函数中报告运行时错误。相反,它必须默认为 Ouch that hurt
这样的一般错误
也许我们中的一个人应该将此报告为 PHP 错误
经过更多测试后,这个错误 senario 在 PHP 7.0.5
中产生了一个有意义的错误
Notice: Use of undefined constant str - assumed 'str' in tst.php on line 3
Fatal error: Uncaught Error: Call to undefined function replace() in tst.php:3
所以这可能现在已修复,但所有以前的 PHP 版本,即 5.4/5.5/5.6 都会产生无用的错误消息
任何人都可以帮助我提供有关此错误的任何可能信息吗?原因?登录?去哪里 look/start?
Cannot use output buffering in output buffering display handlers in <**Unknown**> on line **0**
示例代码:
function test($b) { return _strrev($b); }
ob_start("test");
echo "123";
ob_end_flush();
信息:
- 这是 CentOS 6.7
- 这是 PHP PHP 5.5.32 (cli)
- 这不是 Wordpress
- 这是一个简单的 PHP 文件,带有伪代码(以上)
- 无缓存,无 Varnish,无 Nginx,无自定义 headers
谢谢
为了让这个问题对其他人有用,我将以答案的形式总结评论部分。
事实证明,如果您在 ob_start
使用的回调函数中出现编码错误,它会生成这条有点无用的错误消息
在测试中,我在修改提问者显示的回调函数时非常不小心犯了一个愚蠢的错误,我编码了
<?php
function test($b) {
return str-replace('2', 'XXX', $b);
}
ob_start("test");
echo "123";
ob_end_flush();
注意 str_replace()
函数的拼写错误。
这产生了错误
Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0
因此 PHP 似乎无法在 ob_start
回调函数中报告运行时错误。相反,它必须默认为 Ouch that hurt
也许我们中的一个人应该将此报告为 PHP 错误
经过更多测试后,这个错误 senario 在 PHP 7.0.5
中产生了一个有意义的错误Notice: Use of undefined constant str - assumed 'str' in tst.php on line 3
Fatal error: Uncaught Error: Call to undefined function replace() in tst.php:3
所以这可能现在已修复,但所有以前的 PHP 版本,即 5.4/5.5/5.6 都会产生无用的错误消息