1

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

6%0D%0AFrench%0D%0A0%0D%0A%0D%0A 或者 7%0D%0AEnglish%0D%0A0%0D%0A%0D%0A

我正在使用此处显示的 http_request() 函数。我所做的唯一更改是增加超时。我使用以下方法调用它:

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

我已经在多台服务器之间进行了测试,当我本地主机以外的任何地方发出请求时,额外的字符就会出现。

我有点不知如何进行下去。返回的字符串开头的 6 或 7 似乎是一个字符数,但我不知道它来自哪里。任何帮助将不胜感激。

4

1 回答 1

1

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

是的!您会看到分块传输编码:数据长度、CRLF、数据,然后是另外两个 CRLF 对。我相信最后一个 CRLF 意味着它是最后一个块。

您可能希望使用更完善、经过充分测试、功能齐全的 HTTP 请求机制,例如通常内置的curl 扩展PEAR 的 HTTP_Request2

于 2011-03-30T03:33:28.887 回答