PHP包括意外打印

时间:2011-12-13 00:43:33

标签: php html

我正在尝试使用PHP包含或要求这样:

        <div id="menu">
          <?php 
            include("tmpl/links.php");
          ?>
        </div>

它包括链接,但它也打印一些垃圾。它打印在菜单上方:

        

这对我来说并不意味着什么。如果我使用include或require,就会发生这种情况。这是links.php,为了更好的衡量标准:

      <ul>
        <li>
          <a href="index.php">Home</a>
        </li>
        <li>
          <a href="schedule.php">Schedule/Results</a>
        </li>
        <li>
          <a href="roster.php">Roster</a>
        </li>
        <li>
          <a href="coaches.php">Coaching Staff</a>
        </li>
        <li>
          <a href="aboutus.php">About Us</a>
        </li>
        <li>
          <a href="prospective.php">Prospective Players</a>
        </li>
        <li>
          <a href="links.php">Links</a>
        </li>
        <li>
          <a href="photos.php">Photos</a>
        </li>
        <li>
          <a href="contactUs.php">Contact Us</a>
        </li>
        <li>
          <a href="https://www.facebook.com">Facebook</a>
        </li>
      </ul>

任何人都可以帮我弄清楚如何消除垃圾()?

3 个答案:

答案 0 :(得分:5)

这是UTF-16 BOM(字节顺序标记)。

解决方案:切勿使用UTF-16。

将文件另存为UTF-8。

答案 1 :(得分:5)

你发现了一些名为Byte Order Marker的东西 - 一些Windows程序喜欢添加这些字节(根据Unicode标准的建议),以帮助他们弄清楚如何在将来再次解析这些文件。

我建议使用与notepad.exe不同的文字编辑器; vim或类似的东西应该让你删除那些字节而不会有太多麻烦,只要你坚持不在你的文件中插入垃圾的编辑器,它们就不会回来。

答案 2 :(得分:2)

听起来可能是编码问题。确保您的文本采用UTF8编码(无BOM)。我喜欢用Notepad ++来做这件事。