1

fsockopen()別のサーバーのページから値を要求するために使用しています。返される値は1つの単語です(例:「フランス語」)。これは、ローカルホスト(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、データ、さらに2つのCRLFペア。最後のCRLFは、それが最後のチャンクだったことを意味すると思います。

通常は組み込みのcurl拡張機能PEARのHTTP_Request2など、より十分に開発され、十分にテストされた、フル機能のHTTPリクエストメカニズムを使用することをお勧めします。

于 2011-03-30T03:33:28.887 に答える