PHP5.5.30/Joomla 1.5组件在Prod和Dev中输出一条额外的换行符
我在Mac(OSX 10.11)上的Joomla 1.5/PHP 5.5.30组件中有以下控制器:PHP5.5.30/Joomla 1.5组件在Prod和Dev中输出一条额外的换行符,php,joomla,Php,Joomla,我在Mac(OSX 10.11)上的Joomla 1.5/PHP 5.5.30组件中有以下控制器: 当我通过浏览器和视图源调用这个控制器时,我得到了一个完全空的页面,正如我所期望的那样 但是,当我将这段代码提交到我的产品箱(运行PHP5.5.30的Centos 6)并导航到同一浏览器中的同一端点时,我会得到一个带有换行符的页面 有人能告诉我,或者猜测一下,为什么平台在输出方面会有这样的差异?如何复制/同步文件。它可能是文件的编码。例如,如果您有一个具有UTF-8和BOM的文件,您可以获得一些
当我通过浏览器和视图源调用这个控制器时,我得到了一个完全空的页面,正如我所期望的那样
但是,当我将这段代码提交到我的产品箱(运行PHP5.5.30的Centos 6)并导航到同一浏览器中的同一端点时,我会得到一个带有换行符的页面
有人能告诉我,或者猜测一下,为什么平台在输出方面会有这样的差异?如何复制/同步文件。它可能是文件的编码。例如,如果您有一个具有UTF-8和BOM的文件,您可以获得一些额外的输出。我在调试时发现了一个困难的方法。OSX上的
EOL
(行尾)字符是回车(\r
)。在linux中,EOL
是新的换行符(\n
)。在windows中,这两者同时存在(\r\n
)。浏览器可能会忽略在mac上运行时获得的\r
,但不会忽略从linux获得的\n
。无论哪种方式,“空白页”仍然发送EOL
字符;两次从两个平台提供相同的输出-即一个完全空的文件。这是否证实或否定了您的怀疑?这不是由平台引起的,可能是由php等配置引起的。为什么有close标记?把它扔掉。还有,你为什么不测试一下你是否在Joomla里面?
<?php
jimport ( 'joomla.application.component.controller' );
class MyController extends JController {
function display() {
ob_end_clean ();
}
}
?>