我有一些文件需要包含在几个页面中,所以我使用了类似的东西
<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,则呈现相同,但如果我删除这些字符,则空格会消失。有什么想法吗?
答案 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)
这可以帮助您找到并减少空格。
2.使用边框颜色设置div块,以便了解div块占用的空间。
答案 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">
并编写您的页面代码......