通过fsockopen()返回无关字符的HTTP GET请求

时间:2011-03-30 03:10:53

标签: php fsockopen

我正在使用fsockopen()从另一台服务器上的页面请求值。返回的值只是一个单词(例如“法语”)。当我在localhost(MAMP)上测试时,这可以正常工作,向远程服务器发出请求。但是,当我测试服务器到服务器时,我最终会得到额外的字符,例如:

6%0D%0AFrench%0D%0A0%0D%0A%0D%0A 要么 7%0D%0AEnglish%0D%0A0%0D%0A%0D%0A

我正在使用显示here的http_request()函数。我做的唯一改变是增加超时。我用它来调用它:

$thelanguage = http_request('GET', $domain, 80, $path);

我已经在多个服务器上测试了这个,当我从发出请求时,除了localhost之外,还会显示额外的字符。

我有点不知道如何继续。看来返回的字符串开头的6或7是字符数,但我不知道它来自何处。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

似乎返回的字符串开头的6或7是字符数

烨!您将看到chunked transfer encoding:数据长度,CRLF,数据,然后是另外两个CRLF对。我相信最后的CRLF意味着它是最后一块。

您可能希望使用更加完善,经过良好测试的全功能HTTP请求机制,例如通常内置的curl extensionPEAR's HTTP_Request2