从一台服务器POST数据到另一台服务器,处理以后我用ECHO 1 返回
但是我接受到以后 用if($results==1)判断不成功,输出$results 确实为1
这种情况应该怎么判断返回值

解决方案 »

  1.   

    var_dump($results)
    将输出结果给我看看另外你是怎么取得这个返回值的?show me the code.
      

  2.   

    string(7) "1"fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
    fputs($fp, "Host: $url[host]\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
    fputs($fp, "Content-length: " . strlen($encoded) . "\n");
    fputs($fp, "Connection: close\n\n"); fputs($fp, "$encoded\n");
    $line = fgets($fp,1024);
    if (!eregi("^HTTP/1\.. 200", $line)) return "couldn't eregi url"; $results = ""; $inheader = 1;
    while(!feof($fp)) 
    {
    $line = fgets($fp,1024);
    if ($inheader && ($line == "\n" || $line == "\r\n"))
    {
    $inheader = 0;
    }
    elseif (!$inheader) 
    {
    $results .= $line;
    }
    }
    fclose($fp);
    return $results;
      

  3.   

    怎么会变成 string了啊 晕
      

  4.   

    变成string是正常的,问题是 1 的长度怎么是7呢?
      

  5.   

    string(7) "1" 表示你的返回数据包含了 2 个 BOM 头,只有那个 1 是你 “用ECHO 1 返回”的
    你可以用 print_r(unpack('H*', $results)); 观察一下
    因该是 efbbbfefbbbf30,而 efbbbf 就是 utf-8 编码文件的 BOM 头
     
      

  6.   

    BOM头的问题...我猜我猜我猜猜猜...
      

  7.   

    那我改怎么办啊 我没做过WEB程序,一直做客户端的,现在是赶鸭子上架啊
      

  8.   


    相关文件都另存为无BOM UTF-8 编码
    输出的时候也指定一下编码方式吧
    header("Content-type: text/html; charset=utf-8");