ホームページ >バックエンド開発 >PHPチュートリアル >PHP インターフェース --curl リクエストにより受信された不完全なメッセージの解決策

PHP インターフェース --curl リクエストにより受信された不完全なメッセージの解決策

little bottle
little bottle転載
2019-04-20 11:39:023248ブラウズ

この記事の主な内容は、PHP インターフェイスの問題に関するものです。ヘッダーのエンコーディングが本文メッセージのエンコーディングと一致しない場合、curl リクエストにより受信メッセージが不完全になります。興味のある方は詳細をご覧ください。

質問:

たとえば、あるドッキング プロセス中に、相手から返されたヘッダーは gbk エンコード (Content-type: text/xml; charset=GBK) ですが、メッセージは本文では UTF-8 エンコーディングであるため、返されるメッセージが不完全になります。

詳細な説明:

具体的な理由は、GBK エンコーディングにより 1 つの中国語文字が 2 バイトを占有し、 UTF-8 エンコード 漢字 1 文字は 3 バイトを占有しますcurl リクエストの応答で返される文字長は GBK エンコードに従って計算されるため、計算されたメッセージの文字長は実際の長さよりも小さくなります。応答データの文字長が計算されます。メッセージの長さに達すると停止し、返されるメッセージは不完全になります。

解決策:

curl メソッドを使用しないでください。リクエストを行うには、代わりに file_get_contents メソッドを使用してください。 file_get_contents はヘッド情報を返さないため、コーディングの不整合は発生しません。

関連チュートリアル:PHP ビデオ チュートリアル

以上がPHP インターフェース --curl リクエストにより受信された不完全なメッセージの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。