PHP输出顶部的换行符

PHP输出顶部的换行符,php,smarty,Php,Smarty,我有一个奇怪的问题,关于我的PHP输出上面的另一行 我正在使用Smarty模板引擎格式化网页上的输出。在我编程了一个API连接之后,我在添加的子页面的输出上方得到了一个换行符。当然,我用谷歌搜索了这个问题。到目前为止,我所尝试的: 删除所有文件末尾的所有换行符,并再次将其保存为不带BOM表的UTF-8 php.ini中的auto_prepend_文件设置为nothing 删除Smarty缓存时,请关闭缓存 另一件奇怪的事情是,如果我在本地PC上测试程序(使用XAMPP),我会在每一页上得到换

我有一个奇怪的问题,关于我的PHP输出上面的另一行

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

  • 删除所有文件末尾的所有换行符,并再次将其保存为不带BOM表的UTF-8
  • php.ini中的auto_prepend_文件设置为nothing
  • 删除Smarty缓存时,请关闭缓存
另一件奇怪的事情是,如果我在本地PC上测试程序(使用XAMPP),我会在每一页上得到换行符。但是,当我在客户的live服务器上测试系统时,只有受影响的API页面才会得到这条换行符。PHP警告(E_ALL)出现在换行符上方

有人知道我还没试过吗

有人知道我还没试过吗

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

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

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

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

同样,这有点俗气,不是一个很好的测试或调试方法,但是在没有测试环境的情况下,它可能是有用的,有时是必要的


另外,正如@Fred ii-所建议的,如果您有PHP文件末尾的
?>
标记,那么删除这些标记也会有所帮助(事实上,您不应该有它们,这在很多月前是一项要求,但通常只会导致问题/头痛)

在回送
之前,您是否查找过任何输出?不要关闭PHP标签,如果它只是PHP代码。你能分享一些代码片段吗?呈现模板的控制器和模板本身可能?有时省略
?>
标记会有所帮助。以前没有输出,除了documenttype(我以前使用过,没有错误)。我删除了所有关闭的PHP标记,没有任何更改。我会准备好资料给你看,brb。