【问题标题】:php include html adds white spacesphp include html 添加空格
【发布时间】:2013-09-12 20:38:32
【问题描述】:

我在包含多个 html 页面时遇到问题。 我有主 index.html,但它开始有点过于复杂,所以我决定将它拆分为多个 html 文件,并使用 php 将每个文件导入单个 index.php。

index.php 文件

<?php
include('head.html');
include('header.html');
include('slideshow.html');
include('pictureGalery.html');
include('footer.html');
include('closer.html');
?>

使用我发现的 Google Chrome 开发者工具,该 php 还包括一些空格(您可以在 div 标题、内容、容器等之间的图片中看到它们... 通过一些谷歌搜索,我发现了一些关于这个问题的弧线,比如:

我也尝试过导入 reset.css 文件 (http://meyerweb.com/eric/tools/css/reset/),但也没有用。对我来说似乎工作唯一方式是发布 cebasso (https://stackoverflow.com/a/14362246/1784053) 的方式。但我觉得这种方式有点过于激进和缺乏效果。

任何其他想法如何解决这个问题?

【问题讨论】:

  • but these whitespaces are not visible in notepad. -- 记事本不是唯一的文本编辑器。试试不同的,也许?试试记事​​本++。
  • 还要确保您包含的文件没有尾随空行,php include 会将它们添加到原始文档中
  • +1 for Notepad++ 我最喜欢的文本编辑器。
  • @AmalMurali Notepad++、VisualStudio 2010、Dreamweaver、Eclipse.. 都一样。我没有看到这 3 个 BOM 字符
  • @jayadev 代码前后没有空行

标签: php html whitespace


【解决方案1】:

然后,最终这是由包含的文件上的意外 BOM 引起的: 为了以后参考,我只是简单地发布了用于PHP检查的代码。

print_r(array_map('dechex', array_map('ord', str_split(file_get_contents("xxxxxxxxxxxxx.html"))))); 

我肯定更喜欢使用 Notepad++ 或其他软件来保存 non-BOM 版本, 但如果仍然喜欢使用 PHP 来删除它们,只需使用: 每次执行时都会永久删除文件中的前 3 个字符,因此只运行一次。

$filename="xxxxxxx.html";
$filec = file_get_contents($filename);
file_put_contents($filename,substr($filec, 3, strlen($filec)));

希望它有所帮助:D 祝你好运!

【讨论】:

  • 正如我在问题中所说,目前我正在使用您发布的技术并为我工作。我只是想找到更清晰的东西。无论如何,感谢您的帮助:)这就足够了。
  • 不,如果你仔细观察,它会用 a no BOM version 覆盖替换文件。请查看 file_put_contents
【解决方案2】:

我刚才也遇到了同样的问题。但是当我看到BOM字符时,我想到了一个解决方案。我不确定,但这些字符用于utf-8 编码。我将包含的文件保存为ansi,问题就解决了。它也适用于 Notepad++ 中的 encode in utf-8 without BOM
Thanx

问候

【讨论】:

    【解决方案3】:

    我会仔细查看您包含的文件。确保每个文档的顶部或底部没有空白。空格是不会被php忽略的,肯定会被包含进来的。

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 2016-06-03
      • 1970-01-01
      相关资源
      最近更新 更多