老实说,我不知道如何解释这一点,我能做的最好的就是展示例子。
<html>
<head>
<title>My Webpage</title>
</head>
<body>
<section id="main">
<span>Lorem ipsum dolor sit amet.</span>
</section>
</body>
</html>
好!一切都在#1中完美运作。但是,当我将PHP添加到代码中时......
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/classes/main.php");
?>
<html>
<head>
<title>My Webpage</title>
</head>
<body>
<section id="main">
<span>Lorem ipsum dolor sit amet.</span>
</section>
</body>
</html>
出于某种原因,包括该文件会将<head>
标记中的所有内容移至<body>
。另外,<body>
中有两个新行,它们在窗口顶部和内容之间放置了一个恼人的空间。
为什么会这样?
答案 0 :(得分:1)
问题是由于include_once()或include()。
当您将页面保存为UTF-8时,文件开头会包含一个称为字节顺序标记(或BOM)的特殊签名,表示它是UTF-8文件。您只能看到具有低级文本编辑器的BOM(例如DOS编辑)。您需要从包含的文件中删除此签名,以便摆脱页面顶部的空白区域。
您可以执行以下操作来解决此问题:
$file = file_get_contents('header.php');
$file = substr($file, 3, strlen($file));
echo $file;
这样做可以避免角色。
OR
在Notepad ++中,您可以从“编码”菜单中将文件的编码更改为“无BOM的UTF-8”。