ホームページ >バックエンド開発 >PHPチュートリアル >PHP cURL を使用して HTTP POST リクエストを実行するには?

PHP cURL を使用して HTTP POST リクエストを実行するには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-29 20:47:18628ブラウズ

How to Perform an HTTP POST Request Using PHP cURL?

PHP cURL HTTP POST の例

Web アプリケーションを操作する場合、多くの場合、HTTP リクエストをリモート サーバーに送信する必要があります。 PHP では、cURL 拡張機能は、これを実現するための強力かつ多用途の方法を提供します。この記事では、PHP cURL を使用して HTTP POST を実行する方法を説明します。

問題ステートメント

次のデータを www.example.com に送信するとします。

username=user1, password=passuser1, gender=1

サーバーからの予想される応答は次のとおりです。 "result=OK".

PHP cURL ソリューション

PHP cURL を使用して HTTP POST リクエストを送信するには、次の手順に従います。

  1. 次を使用して cURL セッションを初期化します。 curl_init():
$ch = curl_init();
  1. curl_setopt() を使用してリモート サーバーの URL を設定します:
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/tester.phtml");
  1. これがを使用した HTTP POST リクエストCURLOPT_POST:
curl_setopt($ch, CURLOPT_POST, true);
  1. http_build_query() を使用して POST データを構築し、CURLOPT_POSTFIELDS を使用して設定します:
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('postvar1' => 'value1')));
  1. サーバー応答を取得しますcurl_exec() を使用して設定CURLOPT_RETURNTRANSFER を true に設定します:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec($ch);
  1. curl_close() を使用して cURL セッションを閉じます:
curl_close($ch);
  1. 次のようにサーバー応答を処理します希望:
if ($server_output == "OK") { ... } else { ... }

コード例

上記の手順を示す完全な PHP 例を次に示します:

// A very simple PHP example that sends a HTTP POST to a remote site

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 
          http_build_query(array('postvar1' => 'value1')));

// Receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec($ch);

curl_close($ch);

// Further processing ...
if ($server_output == "OK") { ... } else { ... }

以上がPHP cURL を使用して HTTP POST リクエストを実行するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。