rt,请大神们深入讲解一下
我知道不鼓励使用结束标签,为了让php脚本之后没有空格,为了在include头文件的时候不容易出错,因为session_start()之类的函数的原因可是如果php脚本最后有空格,为什么就会出错呢,session_start()跟这些空格有什么关系?
希望深入详解

解决方案 »

  1.   

    HTTP报文是header在前,body在后。当你在session_start()之前有了body输出,就不能再设定header set-cookie了,而session就是依赖于cookie
      

  2.   


    你说,session_start()之前不能有body体,是吗?
    但是下面的语句却是可以的啊!?
    bbq就是body体,然后再session_start(),依然正确<?php
    echo "bbq";
    session_start();
    echo "fpga";
    ?>
    可能我对你的回复理解的不好,能在解释一下吗,谢谢
      

  3.   

    你的代码是建立在服务器端输出缓存的基础上。也就是Apache或者php帮你缓存了刚开始的一点输出,等到量大点再一起发送到客户端浏览器。而在这之前,header还是可以自由修改的。
    具体可看 php.ini 的 output_buffering ,默认是开启的,会预先帮你缓存4KB的输出。
    但若是以常理来看,代码应该不依赖环境配置。
      

  4.   

    谁说可以?除非你屏蔽了警告,而且session_start()是失败的。