PHP输出顶部的换行符

时间:2014-11-18 13:13:35

标签: php smarty

我有一个奇怪的问题,关于PHP输出之上的额外行。

我使用Smarty模板引擎在网页上格式化我的输出。编写API连接后,我在添加的子页面的输出上方获得了一个换行符。当然,我用Google搜索了这个问题。到目前为止我尝试过的事情:

  • 删除所有文件末尾的所有换行符,并将其再次保存为UTF-8 ,无需 BOM
  • php.ini中的
  • auto_prepend_file 设置为空
  • 删除Smarty缓存,关闭缓存

另一个奇怪的事情是,如果我在本地PC上测试程序(使用XAMPP),我会在每个页面上获取换行符。但是,当我在客户的实时服务器上测试系统时,只有受影响的API页面会获得此换行符。 PHP警告(E_ALL)出现在换行符上方。

任何人都知道我还没有尝试过吗?

1 个答案:

答案 0 :(得分:1)

  

有人知道我还没试过吗?

好吧,因为我们看不到代码,虽然这不是一个理想或强大的测试场景,但在您的情况下,这可能很有用。

在您认为可能出现错误的文件中,从第一个运行的文件开始,添加exit('Here');之类的内容。
然后运行代码并在退出消息之前查看新行是否存在,如果不是问题在exit()之后。

从该文件中删除exit()(确保执行此操作!),然后将其添加到运行顺序中的下一个文件中。
再次运行代码,如果没有问题,请按加载顺序重复文件,直到问题出现。

当问题出现时,您知道问题出在您上次退出的代码/文件与当前退出之间。
仔细检查代码,问题就在那里。

同样,这有点俗气并且不是一个很好的测试或调试方法,但它可能是有用的,有时是必要的,没有适当的测试环境。

另外,正如@ Fred-ii-建议的那样,删除PHP文件末尾的?>标签可以提供帮助,如果你有它们(事实上你不应该在那里使用它们,这曾经是许多月前的要求,但通常只是导致问题/头痛)。