我在输出HTML之前需要引用自己的另一个php文件,如下:<?php
include("test.php");
?>
<html>
<body>
......结果只要这样引用,无论test.php中怎么写,输出页面都会在最开始输出一个空行,但看页面原代码中又绝没有<br>或回车换行符,哪怕test.php完全为空的<?php?>也会这样。但如果将test.php的代码直接写在主程序里替代include("test.php")就不会出现空行。这是为什么?如果我必须在开头include,该怎么解决?

解决方案 »

  1.   

    本帖最后由 PhpNewnew 于 2012-02-16 18:45:05 编辑
      

  2.   

    BOM 头?国际化?真的不知道有多少人能看懂中文
      

  3.   

    可能是你的include文件中<?php...?>之后有换行,如:
    <?php
    ...
    ?>
    这里
      

  4.   

    你用记事本打开这个html文件,把头部的空行去掉吧
      

  5.   

    文件格式用UTF-8无BOM试试看,推荐用notepad++修改文件格式
      

  6.   

    把test.php文件的编码改为utf-8,试试,存在bom头的可能性很大
      

  7.   

    文件编码改为utf-8,试试,gbk的编码可能有bom头
      

  8.   

    前面加不加header("Content-type:text/html;charset=utf-8")问题依旧,而且并不影响session,所以是否牵扯到BOM头不好说。但跟utf-8编码肯定有关,现在我是主php文件开头include另一个php文件,两个php文件存储格式都是utf-8(windowsXP系统下),我发现只要把其中任何一个文件的存储编码改为ANSI,空行就没了。但是牵涉到整个系统两个文件都只能以utf-8保存
      

  9.   


    那就是bom头了,另存无头utf-8即可.