29

我正在制作的网站上有问题。我的页面顶部有这一行空白。我不知道它是从哪里来的。这可能是由于 php 在我的页面中出现了额外的换行符,include()或者它可能只是一些错误的 css。

4

15 回答 15

41

我得到了它!我必须承认,这是一个非常奇怪的事情。

是我的确切问题,他的解决方案完美地解决了它。


问题是因为include().

当您将页面保存为 UTF-8 时,文件开头会包含一个称为字节顺序标记(或 BOM)的特殊签名,表明它是一个 UTF-8 文件。您只能使用低级文本编辑器(例如DOS 编辑)查看 BOM。您需要从包含的文件中删除此签名,以消除页面顶部的空白。

DOS编辑

于 2012-04-17T23:01:08.827 回答
14

在 Notepad++ 中,您可以从“编码”菜单中将文件的编码更改为“不带 BOM 的 UTF-8”。这解决了我的问题。

于 2013-05-18T14:55:51.977 回答
10
  1. 在记事本++中打开文件

  2. 从顶部栏:编码->在没有 BOM 的 UTF8 中编码

  3. 保存文件

在 Dreamweaver 中

按 CTRL + J 或转到更改->页面设置->平铺/编码,如果选中,则取消选中UNICODE BOM

于 2014-01-23T22:31:54.157 回答
4

好吧,您缺少初学者的 DOCTYPE ...您也没有指定字符编码。

除此之外,请确保如果您已将文件保存为 UTF-8,则它们在开始时不得有BOM。还要确保你没有留下任何空行(尽管空格可能会被忽略,否则我写过的每个布局都会中断)

于 2012-04-17T21:27:55.470 回答
3

出于某种原因,在第一个 div 之前的 body 标记之后,您有一些时髦的角色......只需删除它们并根据需要重新缩进。准确的字符...(如果您检查页面的HTML ,您可以在 Firebug 中看到它...但您在视图源中看不到它,因为它呈现为空白)。

与对齐问题无关......您的登录/注册链接后还有一个不匹配的结束</li>标签。

于 2012-04-17T21:25:06.897 回答
3

您可以通过以下方式解决此问题...

根据斯昆利夫所说的……你可以避免这个角色……例子

$file = file_get_contents('header.php');
$file = substr($file, 3, strlen($file));
echo $file;

所以,你正在跳过这个错误......

问候

于 2013-01-16T15:44:10.907 回答
3

重要提示:如果您在我的网站中有多个使用 utf-8 的 php 页面,则需要确保将每个页面的编码更改为“在没有 BOM 的情况下以 utf-8 编码”。

于 2014-10-10T09:24:33.763 回答
1

是的,在其他任何内容之前都包含了额外的空格。

我可以向您推荐使用输出缓冲吗?您将获得对推送给客户端的内容的细粒度控制。

于 2012-04-17T21:24:43.107 回答
0

声明 DOCTYPE 后,确保将 CSS reset 添加到 CSS 代码的第一行,以使其在所有浏览器中保持一致:

*{margin:0;
 padding:0;
 }
于 2012-04-17T21:39:20.077 回答
0

在查看您在 firebug 上的网站输出时,我在 html 渲染上发现了一个小问题。在屏幕截图中查看。 萤火虫报告

这可能是由于页面顶部缺少文档类型。在页面顶部添加以下文档类型并再次查看输出。

<!doctype html>
<html itemtype="http://schema.org/WebPage" xmlns="http://www.w3.org/1999/xhtml"   xmlns:og='http://opengraphprotocol.org/schema/'
xmlns:fb='http://www.facebook.com/2008/fbml'>
于 2012-04-17T21:51:53.423 回答
0

在线测试所有建议,用记事本解决,程序:

  1. 复制文件的所有内容以包含,从php没有<?
  2. 打开记事本并输入<?然后粘贴所有代码
  3. 享受
于 2016-10-10T16:51:36.750 回答
0

这个问题也困扰了我很久,直到我找到了一个非常简单的解决方案。

此问题是由 BOM 字符引起的,该字符用于告诉代码页以及文本文件的字节序。包含 PHP 文件时,也会包含此字符。虽然您不会看到 BOM 字符,但它可能会在您的页面上造成间隙。

我的解决方案在这里。您不必从文件中删除此字符。你需要做的是这样的:

<!-- <?php
include_once (dirname(__FILE__) . "/_include.php");
?> -->

使用 HTML 注释标记来包装包含其他 php 文件的 php 代码。BOM 字符将被视为注释,不会出现在页面上。

于 2017-09-06T02:18:08.123 回答
0

BOM Character 造成了这个问题。有时它不会创造出人们所看到的这种视觉特征。只需检查文件编辑器设置并设置为“无 BOM”以防止出现此类空白行。

有时图像会因为这个字符而无法工作,因为图像的字符集被这个字符破坏了。

为了避免这种情况,i)。检查您的代码编辑器是否使用 BOM 创建新文件。如果是这样,请更改此设置。ii)。打开代码的所有文件并在开始时检查 BOM 字符(

于 2017-12-06T13:29:50.407 回答
0

试试这个这是我所知道的最好的主意,干杯

<div style="position:absolute;">
<?php include("conn.php"); ?>
</div>
<!DOCTYPE html>
于 2017-12-11T06:24:16.550 回答
0

我刚刚下载了 Notepad++,应该建议没有 BOM 的 UTF-8 不是编码选项。只选择“UTF-8”而不是“UTF-8 BOM”。那行得通。

于 2018-08-12T13:34:35.887 回答