From 45c65d333114dc38bb8e7967f22e53e47f322770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Sat, 26 Sep 2026 16:16:01 +0900 Subject: [PATCH] =?UTF-8?q?curl=20=E3=82=92=E5=8E=9F=E6=96=87=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=AB=E8=BF=BD=E5=BE=93=20(3=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit curl の 3 ファイルを原文の変更に追従しました。これで curl モジュールの未訳・要更新はなくなります。 - `curl_errno()` と `curl_error()` に、`curl_multi_exec()` で実行したハンドルでは `curl_multi_info_read()` がそのハンドルのメッセージを返すまでそれぞれ 0 と空文字列を返す、という注記が追加されました(php/doc-en@ff7a005、php/doc-en#5233。注記の内容は php/doc-en@fa9bae0、php/doc-en#5884 で修正) - 例のページに、POST リクエストを送る例と、JSON を POST リクエストで送る例が追加されました(php/doc-en@e7c6a2f、php/doc-en#4612) ## 対象ファイル reference/curl/ (3) — examples.xml, functions/curl-errno.xml, functions/curl-error.xml --- reference/curl/examples.xml | 70 +++++++++++++++++++++++-- reference/curl/functions/curl-errno.xml | 13 ++++- reference/curl/functions/curl-error.xml | 15 +++++- 3 files changed, 92 insertions(+), 6 deletions(-) diff --git a/reference/curl/examples.xml b/reference/curl/examples.xml index e3205bff31..b7323b1c05 100644 --- a/reference/curl/examples.xml +++ b/reference/curl/examples.xml @@ -1,20 +1,83 @@ - + &reftitle.examples;
基本的な curl の使用法 - + PHP を cURL サポート機能付きでコンパイルすると、 curl 関数を使用可能となります。cURL 関数の基本的な使用法は、 curl_initにより cURL セッションを初期化、 curl_setopt により転送時のオプションを設定、 続いてcurl_exec により転送を実行するというものになります。 - cURL 関数を使用して example.com ホームページをファイルに取得する例を示します。 + + + cURL 関数を使用して POST リクエストを送信する簡単な例を示します。 + + PHP の cURL モジュールを使用して POST リクエストを送信する + + 'bar', 'baz' => 48]; +$url = "http://www.example.com/handler.php"; + +$ch = curl_init($url); + +// レスポンスを標準出力に出力せず、戻り値として返すよう cURL に指示します +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + +// POST データと、対応するメソッドおよびヘッダーを設定します +curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); + +// リクエストを送信し、レスポンスを取得します +$response = curl_exec($ch); + +if(curl_error($ch)) { + // エラーを処理するか、単に例外をスローします + throw new RuntimeException(curl_error($ch)); +} +]]> + + + + + cURL 関数を使用して、生の JSON を POST リクエストで送信する例も示します。 + + PHP の cURL モジュールを使用して JSON を POST リクエストで送信する + + 'bar', 'baz' => 48]; +$url = "http://www.example.com/api/endpoint"; + +$ch = curl_init($url); + +// レスポンスを標準出力に出力せず、戻り値として返すよう cURL に指示します +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + +// POST データと、対応するメソッドを設定します +curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data)); + +// 必要なヘッダーを設定します +curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); + +// リクエストを送信し、レスポンスを取得します +$response = curl_exec($ch); + +if(curl_error($ch)) { + // エラーを処理するか、単に例外をスローします + throw new RuntimeException(curl_error($ch)); +} +]]> + + + + + さらに、cURL 関数を使用して example.com ホームページをファイルに取得する例を示します。 PHP の cURL モジュールを使用して example.com のホームページを取得する @@ -32,7 +95,6 @@ if(curl_error($ch)) { fwrite($fp, curl_error($ch)); } fclose($fp); -?> ]]> diff --git a/reference/curl/functions/curl-errno.xml b/reference/curl/functions/curl-errno.xml index 839af6c534..092d769bf4 100644 --- a/reference/curl/functions/curl-errno.xml +++ b/reference/curl/functions/curl-errno.xml @@ -1,6 +1,6 @@ - + @@ -34,6 +34,16 @@ エラー番号を返します。エラーが発生しない場合、 0 (ゼロ) を返します。 + + + CurlHandle を curl_multi_exec + で実行した場合、curl_multi_info_read + がそのハンドルのメッセージを返すまでは、この関数は + 0 を返します。 + 個々のハンドルのエラーコードは、curl_multi_info_read + が返す result キーから取得できます。 + + @@ -85,6 +95,7 @@ if(curl_errno($ch)) curl_error + curl_multi_info_read Curl エラーコード diff --git a/reference/curl/functions/curl-error.xml b/reference/curl/functions/curl-error.xml index 700474281a..b8f0e02f6d 100644 --- a/reference/curl/functions/curl-error.xml +++ b/reference/curl/functions/curl-error.xml @@ -1,6 +1,6 @@ - + @@ -34,6 +34,17 @@ エラーメッセージ、あるいはエラーが発生しなかった場合は '' (空文字) を返します。 + + + CurlHandle を curl_multi_exec + で実行した場合、curl_multi_info_read + がそのハンドルのメッセージを返すまでは、この関数は + '' (空文字) を返します。 + 個々のハンドルのエラー文字列を取得するには、curl_multi_info_read + が返す result キーの値を + curl_strerror に渡してください。 + + @@ -85,6 +96,8 @@ else curl_errno + curl_strerror + curl_multi_info_read Curl エラーコード