Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 66 additions & 4 deletions reference/curl/examples.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fc9a0a8b29a7a099998bdd71fe5350a10b18fe62 Maintainer: takagi Status: ready -->
<!-- EN-Revision: e7c6a2f6847c3a8c9fec6ba588f235ccdcf6f3a5 Maintainer: takagi Status: ready -->
<!-- CREDITS: shimooka,hirokawa,mumumu -->

<chapter xml:id="curl.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<section xml:id="curl.examples-basic">
<title>基本的な curl の使用法</title>
<para>
<simpara>
PHP を cURL サポート機能付きでコンパイルすると、
curl 関数を使用可能となります。cURL 関数の基本的な使用法は、
<function>curl_init</function>により cURL セッションを初期化、
<function>curl_setopt</function> により転送時のオプションを設定、
続いて<function>curl_exec</function>
により転送を実行するというものになります。
cURL 関数を使用して example.com ホームページをファイルに取得する例を示します。
</simpara>
<para>
cURL 関数を使用して POST リクエストを送信する簡単な例を示します。
<example>
<title>PHP の cURL モジュールを使用して POST リクエストを送信する</title>
<programlisting role="php">
<![CDATA[
<?php
$data = ['foo' => '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));
}
]]>
</programlisting>
</example>
</para>
<para>
cURL 関数を使用して、生の JSON を POST リクエストで送信する例も示します。
<example>
<title>PHP の cURL モジュールを使用して JSON を POST リクエストで送信する</title>
<programlisting role="php">
<![CDATA[
<?php
$post_data = ['foo' => '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));
}
]]>
</programlisting>
</example>
</para>
<para>
さらに、cURL 関数を使用して example.com ホームページをファイルに取得する例を示します。
<example>
<title>PHP の cURL モジュールを使用して example.com のホームページを取得する</title>
<programlisting role="php">
Expand All @@ -32,7 +95,6 @@ if(curl_error($ch)) {
fwrite($fp, curl_error($ch));
}
fclose($fp);
?>
]]>
</programlisting>
</example>
Expand Down
13 changes: 12 additions & 1 deletion reference/curl/functions/curl-errno.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fc9a0a8b29a7a099998bdd71fe5350a10b18fe62 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: fa9bae0f65aec476264cf4f828ac9fe253f9839b Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka -->
<refentry xml:id="function.curl-errno" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
Expand Down Expand Up @@ -34,6 +34,16 @@
エラー番号を返します。エラーが発生しない場合、
<literal>0</literal> (ゼロ) を返します。
</para>
<note>
<simpara>
<type>CurlHandle</type> を <function>curl_multi_exec</function>
で実行した場合、<function>curl_multi_info_read</function>
がそのハンドルのメッセージを返すまでは、この関数は
<literal>0</literal> を返します。
個々のハンドルのエラーコードは、<function>curl_multi_info_read</function>
が返す <literal>result</literal> キーから取得できます。
</simpara>
</note>
</refsect1>

<refsect1 role="changelog">
Expand Down Expand Up @@ -85,6 +95,7 @@ if(curl_errno($ch))
<para>
<simplelist>
<member><function>curl_error</function></member>
<member><function>curl_multi_info_read</function></member>
<member><link xlink:href="&url.curl.error;">Curl エラーコード</link></member>
</simplelist>
</para>
Expand Down
15 changes: 14 additions & 1 deletion reference/curl/functions/curl-error.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fc9a0a8b29a7a099998bdd71fe5350a10b18fe62 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: fa9bae0f65aec476264cf4f828ac9fe253f9839b Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka -->
<refentry xml:id="function.curl-error" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
Expand Down Expand Up @@ -34,6 +34,17 @@
エラーメッセージ、あるいはエラーが発生しなかった場合は <literal>''</literal>
(空文字) を返します。
</para>
<note>
<simpara>
<type>CurlHandle</type> を <function>curl_multi_exec</function>
で実行した場合、<function>curl_multi_info_read</function>
がそのハンドルのメッセージを返すまでは、この関数は
<literal>''</literal> (空文字) を返します。
個々のハンドルのエラー文字列を取得するには、<function>curl_multi_info_read</function>
が返す <literal>result</literal> キーの値を
<function>curl_strerror</function> に渡してください。
</simpara>
</note>
</refsect1>

<refsect1 role="changelog">
Expand Down Expand Up @@ -85,6 +96,8 @@ else
<para>
<simplelist>
<member><function>curl_errno</function></member>
<member><function>curl_strerror</function></member>
<member><function>curl_multi_info_read</function></member>
<member><link xlink:href="&url.curl.error;">Curl エラーコード</link></member>
</simplelist>
</para>
Expand Down
Loading