PHP MVC上的HTML输出上的额外空格

时间:2010-04-30 10:41:15

标签: php whitespace

我正在获得额外的空格,这不是CSS,或者在视图输出上没有类似的内容:HTML。

我已经检查了?>(已删除,我可以),保存的UTF8没有BOM。检查每个文件开头是否存在空白区域,即使在结束时也是如此。

这是结构:

index.php - this is the entry point;
MODEL/
CONTROLLER/
VIEW/

让我们说,那个槽方法GET,它发送了一个带有一些值的var TPL。我们称之为LIST,因此它会使用所有数据拉出LIST模型,然后使用正确的数据向用户显示正确的模板。

我使用并测试过,使用require_once,include_once,include,甚至用readfile测试(只是为了测试)。 LIST模板打开header.tpl和footer.tpl;我还尝试从LIST模板中删除这两个包含,但仍然,额外的空白区域继续。

这是额外的空白来源。此控制器位于<body> controller activity runs here </body>之间,这是额外的空白来源:

$model_works->getRows();

$rows = $model_works->rows;

if ( !require_once('views/list_works.tpl.php') ) {

echo "<p>Error.</p>";

} // end if clause

list_works.tpl.php,基本上是带标签的HTML;我已经通过将扩展名更改为其他内容来测试,例如html。

另外,请记住,在此文件的顶部,我们使用require_once打开header.tpl,并在底部使用footer.tpl。我已经通过删除两者进行了测试,仍然生成了额外的空白区域。

这里会产生额外的空白区域:

<body>
# EXTRA WHITE SPACE HERE #
<!-- some stuff working fine -->
</body>  

非常感谢, ; d

3 个答案:

答案 0 :(得分:1)

尝试在MS-Dos Edit之类的低级文本编辑器中打开文件,你可能会发现一些控制字节会删除它并且没问题。

答案 1 :(得分:1)

我遇到了同样的问题,当使用require时,在文档的其余部分之前,在正文的开头有一个空格。我的解决方案非常简单:

<!--Dummy HTML comment<? require something.php ?>-->

这样,空白区域位于注释中,并且未显示。问题是所需文件的任何返回也在注释中,因此您可以将此返回放在所需文件中的函数中,并从本机文件中调用它以最终获取数据并将其放在任何您想要的位置。我的apache服务器在HTML注释中读取PHP代码没有问题,但我不确定这可以在任何其他地方使用。

答案 2 :(得分:0)

你的一个文件中有一个额外的换行符,一个迷路的回声,在发现它之前不断发表评论?