Php 发出第一个字符的代码的补漏白行
突然,应用程序不再能够输出ZIP文件。检查发现了原因:ZIP的第一个字符是空白的,这违反了ZIP格式规范 为了追踪这个问题,我启用了CStatementTracer,它将执行的每一行代码打印到一个日志文件中。没有帮助。[备注:declare(ticks=1);似乎不会捕获每一行执行的代码] 然后我设置了一个输出处理程序,如下所示:Php 发出第一个字符的代码的补漏白行,php,ob-start,Php,Ob Start,突然,应用程序不再能够输出ZIP文件。检查发现了原因:ZIP的第一个字符是空白的,这违反了ZIP格式规范 为了追踪这个问题,我启用了CStatementTracer,它将执行的每一行代码打印到一个日志文件中。没有帮助。[备注:declare(ticks=1);似乎不会捕获每一行执行的代码] 然后我设置了一个输出处理程序,如下所示: function callback( $buffer ) { $deb = print_r( debug_backtrace(), TRUE );
function callback( $buffer ) {
$deb = print_r( debug_backtrace(), TRUE );
file_put_contents( './statementTrager.log', $deb );
return $buffer;
}
ob_start("callback", 1 );
不幸的是,根本没有调用这个处理程序
Q:是否存在一个通用/规范解决方案,用于标识发出第一个字符的PHP代码的文件/行。
一个解决方案,无论执行什么代码,都可以找到loc
备注:
- 使用
?>
这是一个相当耗时的过程。应作为最后手段。如果突然停止工作,首先要检查的是发生了什么变化。首先-检查问题是否在新环境中重现,以确认它是应用程序,而不是第三方,然后检查VCS并找到它停止工作的提交。一个空白字符可能来自php周围的代码-在发送的
标题之前或之后的空格(&$file,&$line)?如果没有像html这样的输出,请删除文件末尾的任何结尾?>
。一点空白就可以输出,把一切都搞砸了。谢谢。但它可能输出了太多的信息。不幸的是,我现在在windows上。不过这是一个很好的暗示!