调试PHP输出
我有一个php网站,在某些页面上,在第一个html标记之前添加了一个点或空格。我不知道它是从哪里来的-有没有办法调试代码以便我可以看到它是从哪里来的? 谢谢调试PHP输出,php,debugging,Php,Debugging,我有一个php网站,在某些页面上,在第一个html标记之前添加了一个点或空格。我不知道它是从哪里来的-有没有办法调试代码以便我可以看到它是从哪里来的? 谢谢 Josh也许它是一个?也许它是一个?为了防止这种情况发生,最好不要在PHP文件的结尾使用?> 您可能有这样的文件(请注意?>后面的额外空间): 如果要删除文件末尾的?>,则文件末尾的额外空间不会被解释为要输出的内容 对于仅包含PHP代码的文件, 结束标记(“?>”)永远不可用 被允许PHP不需要它, 省略它可以防止 意外注入尾随白细胞
Josh也许它是一个?也许它是一个?为了防止这种情况发生,最好不要在PHP文件的结尾使用
?>
您可能有这样的文件(请注意?>
后面的额外空间):
如果要删除文件末尾的?>
,则文件末尾的额外空间不会被解释为要输出的内容
对于仅包含PHP代码的文件,
结束标记(“?>”)永远不可用
被允许PHP不需要它,
省略它可以防止
意外注入尾随白细胞
将空格插入到响应中
来源:为了防止这种情况发生,最好不要以
?>
结束PHP文件
您可能有这样的文件(请注意?>
后面的额外空间):
如果要删除文件末尾的?>
,则文件末尾的额外空间不会被解释为要输出的内容
对于仅包含PHP代码的文件,
结束标记(“?>”)永远不可用
被允许PHP不需要它,
省略它可以防止
意外注入尾随白细胞
将空格插入到响应中
来源:真的没有很好的方法来调试这个。您需要浏览页面所访问的每个文件,并找出输出的来源。如果你真的想偷懒,你可以做一些输出缓冲,但这不是正确的方法。调试这一点真的没有好方法。您需要浏览页面所访问的每个文件,并找出输出的来源。如果你真的想偷懒,你可以做一些输出缓冲,但这不是正确的方法。如果你正在使用模板,也许你应该检查一下它们。。。问题可能在那里,而不是在主代码中
是的,在PHP中不关闭结束标记是一个很好的做法。如果您正在使用模板,也许您应该检查它们。。。问题可能在那里,而不是在主代码中
是的,在PHP中,不关闭结束标记是一个很好的做法。像这样的问题可能很难找到。如果您所处的框架或系统中包含大量文件,您可能会在错误发生之前尝试一次
var\u转储(get\u included\u files())
,这将为您提供一个开始的位置。如果这还不够,xdebug可能会让您走得更远。需要注意的是PHP标记前后的空间,以及可能发送输出的函数。像这样的问题可能很难找到。如果您所处的框架或系统中包含大量文件,您可能会在错误发生之前尝试一次var\u转储(get\u included\u files())
,这将为您提供一个开始的位置。如果这还不够,xdebug可能会让您走得更远。需要注意的是PHP标记前后的空间,以及可能发送输出的函数。您能提供一些有问题页面的代码吗?或者您能提供一个指向URLFirebug web developer扩展的链接吗?您能提供一些有问题页面的代码吗?或者您能提供一个指向URLFirebug web developer扩展的链接吗?可能会有帮助—1个糟糕、可怕的建议。在任何情况下,您都不能不包括结尾?>
。“从来没有!”迈克尔-为什么?这并不能解释为什么你投了反对票@迈克尔,你为什么这么说?我不知道我是否一定同意这一点。事实上,我认为Zend编码标准要求在只包含php代码的文件上省略它。@Michael,事实上,你完全错了。根据PHP自己的开发人员的说法,文件中只包含PHP代码。CodeIgniter和Drupal都同意,许多其他开发人员也同意。@Michael Irigoyen:省略结尾的?>
通常被认为是良好的做法,许多编码标准都鼓励这样做。包括它会让你更容易出错。忽略它不是懒惰,而是聪明。另请参见-1可怕的建议。在任何情况下,您都不能不包括结尾?>
。“从来没有!”迈克尔-为什么?这并不能解释为什么你投了反对票@迈克尔,你为什么这么说?我不知道我是否一定同意这一点。事实上,我认为Zend编码标准要求在只包含php代码的文件上省略它。@Michael,事实上,你完全错了。根据PHP自己的开发人员的说法,文件中只包含PHP代码。CodeIgniter和Drupal都同意,许多其他开发人员也同意。@Michael Irigoyen:省略结尾的?>
通常被认为是良好的做法,许多编码标准都鼓励这样做。包括它会让你更容易出错。忽略它不是懒惰,而是聪明。瞧,嘿,别相信我。。。。嘿,别相信我。。。。
<?php
// Some code //
?>