有sql执行语句的php接口返回的结果
{"result":"09001334"}  
响应头信息
Connection Keep-Alive
Content-Length 24
Content-Type text/html;charset=UTF-8
Date Wed, 08 Feb 2012 01:49:09 GMT
Keep-Alive timeout=5, max=100
Server Apache/2.2.6 (Win32) PHP/5.2.5
X-Powered-By PHP/5.2.5结果明明是21个返回的信息中却显示是24个。没有包含sql执行语句的php接口返回的结果又正常
{"result":"1234656"}响应头信息
Connection Keep-Alive
Content-Length 20
Content-Type text/html;charset=utf-8
Date Wed, 08 Feb 2012 01:59:01 GMT
Keep-Alive timeout=5, max=100
Server Apache/2.2.6 (Win32) PHP/5.2.5
X-Powered-By PHP/5.2.5这倒是是为啥呢?    麻烦各位高手帮忙解决解决!!!!!!!!!

解决方案 »

  1.   

    Content-Length 24
    表示内容长度是 24 个人字节当内容为 {"result":"09001334"} 时
    长度为 21 字节相差了 3 个字节,考虑到有 Content-Type text/html;charset=UTF-8
    应优先检查是否为 BOM 头引起的为便于别人帮你检查,你应贴出可供测试的地址
    至少需贴出经base64编码的内容
      

  2.   

    不包含sql查询:http://125.64.16.246:8080/appworld_php/appworld_php/phoneBasic/register/testCoding.php包含sql查询:
    http://125.64.16.246:8080/appworld_php/appworld_php/phoneBasic/register/checkPhone.php?iphone=12344谢谢了。
      

  3.   

    BOM头应该是没了,,,header函数正常使用。charset也是utf-8;
          没有包含sql查询的接口返回字符正常,但包含了sql查询的接口返回的字符长度就不对了。
    好像是跟mysql有关。  
      

  4.   

    不存在“应该”,想当然则必然要出问题!$s = file_get_contents('http://125.64.16.246:8080/appworld_php/appworld_php/phoneBasic/register/checkPhone.php?iphone=12344');
    print_r(unpack('H*', $s)); 
    Array
    (
        [1] => efbbbf7b22726573756c74223a223335303438353331227d
    )efbbbf 就是 BOM 头啊!
      

  5.   

    但是为什么会多个BOM头呢?                  才学php几天,有些幼稚的问题,不要见笑。