使用PHP包含时如何避免空格?

时间:2012-08-13 03:10:26

标签: php include

我有一些文件需要包含在几个页面中,所以我使用了类似的东西

<html>
<head>
<title>This is a webpage</title>
</head>
<body>
<div>Hello, this is a webpage</div>
<?php include("header.html");?>
<div>Some more text.</div>
<?php include("BlockToInclude.php");?>
<div>Even more text.</div>
<?php include("footer.html");?>
</body>
</html>

问题是,对于每个include();,我会在包含的内容之前获得20px的空白空间。我通过将第一个包含的块的边距减少20px来解决这个问题,但我更喜欢避免这个空间而不是补偿它的东西。另外,我是PHP的新手,这是正常的行为,还是我应该找一些我做错的事情?

更新:我检查了生成的代码,在我调用insert();函数的每个位置,它都显示一个不在原始文件中的陌生人字符(也不是调用者或包含的)。我将代码从Firefox代码查看器(在哪里看不到)复制到我的编辑器(Windows中的RJ TextEd),它在框中显示为问号;如果我将此代码保存为静态html,则呈现相同,但如果我删除这些字符,则空格会消失。有什么想法吗?

8 个答案:

答案 0 :(得分:8)

我在这里找到了这个主题

有人sais:

我以前遇到过这个问题。确保以ASCII而不是二进制文件上传文件。有时,对于某些FTP服务器,您必须手动设置。还可以尝试在文本编辑器中将换行符转换为“\ n”。 Lemme知道你正在使用哪个编辑器,我会给你更具体的说明。

http://forums.digitalpoint.com/showthread.php?t=957679

有人解决了它: 我用notepad ++(http://notepad-plus.sourceforge.net/)解决了这个问题 用notepad ++打开php文件,在格式菜单中选择不带BOM的utf-8编码并保存。

希望这有助于

答案 1 :(得分:1)

在包含文件的末尾是否有空格?默认情况下,PHP不会从include指令创建任何空格,除非你后面有空格,例如。

没有空格:

<?php include('x'); ?>
</div>

将包含一行空格:

<?php include('x'); ?>

</div>

如果包含的文件末尾有空格,则会输出。

答案 2 :(得分:1)

不完全相同,但相似:

我的html中有一个神秘的'1'出现在我的包含文件中。

这是一个简单而愚蠢的错误,我把include包含在使用短标签中:

<?=include('social-media-box.php')?>

而不是正确:

<?php include('social-media-box.php'); ?>
无论出于何种原因,

都会导致'1'出现。无论如何,使用完整的php标签摆脱它。

希望它有所帮助。

答案 3 :(得分:1)

我在这里回答了类似的情况: https://stackoverflow.com/a/26658129/292060

问题是带有BOM字符的UTF-8编码,导致空白。

答案 4 :(得分:0)

它的html行为,因为你把div标记下的include,试试把它放在它旁边。你的代码会是这样的

...</div><?php include("file.php") ?>

答案 5 :(得分:0)

这可以帮助您找到并减少空格。

  1. 查看源代码,看看是否可以找出哪些包含的文件正在创建空格。
  2. 2.使用边框颜色设置div块,以便了解div块占用的空间。

    1. 看看你是否可以拥有所包含文件的代码而没有任何空格或额外的行。您可以压缩包含的文件

答案 6 :(得分:0)

将此规则放在CSS的开头, 它将禁用页面中元素的默认填充和边距。

*
{
    margin: 0;
    padding: 0;
}

答案 7 :(得分:0)

将它放在<!DOCTYPE...

之前

喜欢这段代码:

<?php include "config.php"; ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

并编写您的页面代码......