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


How can I avoid the blank space when using 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,它会呈现相同的内容,但是如果我删除这些字符,则空格就会消失。有什么想法吗?

我在这里找到了这个话题

有人说:

我以前遇到过这个问题。确保以 ASCII 而不是二进制格式上传文件。有时,对于某些FTP服务器,您必须手动设置。此外,请尝试在文本编辑器中将换行符转换为"'"。Lemme 知道您使用的是哪个编辑器,我会为您提供更具体的说明。

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

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

希望这有助于

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

无空格:

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

将包含一行空格:

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

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

不完全相同,但相似:

在我的包含文件点,我的 html 中出现了一个神秘的"1"。

这是一个简单而愚蠢的错误,我使用一个简短的标签来包含以下内容:

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

而不是正确:

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

无论出于何种原因,这都导致了"1"的出现。无论如何,使用完整的php标签摆脱了它。

希望它对某人有所帮助。

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

问题是使用 BOM 字符的 UTF-8 编码,这导致了空格。

它的html行为,因为你把包含放在div标签下,试着把它放在旁边。你的代码将是这样的

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

这可能有助于您查找和减少空格。

  1. 查看源代码,看看是否可以找出哪些包含的文件正在创建空格。

2.让你的div 块带有边框颜色,以便您知道你的div 块占用了多少空间。

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

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

*
{
    margin: 0;
    padding: 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">

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