PHP CURL POST エラーの解決策: まず、エラーのある PHP コード ファイルを開き、次に PHP コード内の "$data" を配列から "urlencode()" 関数によってエンコードされたデータに変更します。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン
こんなときの問題の解決方法phpcurlpost メソッド
には次のシナリオがあります:
POST モードで a.php 内の b.php にデータを送信しますが、b.php はデータを受信できず、CURL操作 再び成功を示しますが、これは非常に奇妙です。 「配列を CURLOPT_POSTFIELDS に渡すと、cURL はデータを multipart/form-data にエンコードしますが、URL エンコードされた文字列を渡すと、データは application/x-www-form-urlencoded にエンコードされる」ことがわかります。 。
CURL に詳しくない人がプログラムを作成する場合、次のようなコードがよく使用されます。
コード例:
<?php $data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $comefrom ); curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false); curl_setopt($ch, CURLOPT_URL, 'http://example.com/b.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch);
送信されるデータを次のように変換します。配列 フォームは POST 経由で送信されるため、CURL は「間違った」エンコーディング「multipart/form-data」を使用します。これは、「b20d872f95765bfa7a85cce7b1b5ce80" のようなフォームを使用して操作を完了できます。試してみてください。現時点では、"b.php" は $_POST 経由でデータを受信できません。
したがって、正しいアプローチは、上記のコードの $data を配列から urlencode() でエンコードされたものに変更することです。
[推奨学習: PHP ビデオ チュートリアル ]
以上がPHP CURL POSTエラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。