File: curl.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (558 lines) | stat: -rw-r--r-- 21,200 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.10 $ -->
 <reference id="ref.curl">
  <title>CURL, Client URL Library 関数</title>
  <titleabbrev>CURL</titleabbrev>

  <partintro id="curl.partintro">
   <para>
    PHP は、Daniel Stenbergにより開発されたライブラリlibcurl をサポー
    トします。このライブラリにより、多くの異なったプロトコルで様々なサー
    バーと接続し、通信することが可能になります。libcurl は現在
    http, https, ftp, gopher, telnet, dict, file, ldap プロトコルをサ
    ポートしてします。libcurl は HTTPS 認証、HTTP POST、HTTP PUT、FTP
    アップロード(これはPHPのftp拡張機能でも実行可能です)、HTTPフォーム
    によるアップロード、プロキシ、クッキー、ユーザ名+パスワードによる
    認証もサポートします。
   </para>
   <para>
    CURL関数を使用するためには、<ulink url="&url.curl;">CURL</ulink>パッ
    ケージをインストールしておく必要があります。PHPは、
    CURL 7.0.2-beta 以降を必要とします。7.0.2-beta以前のバージョンでは
    動作しません。
   </para>
   <para>
    PHPのCURLサポート機能を使用するには、<option
    role="configure">--with-curl[=DIR]</option> を付けてPHPをコンパイ
    ルしておく必要があります。ただし、DIRは、ディレクトリlibおよび
    includeを有するディレクトリの場所となります。
    ディレクトリ"include"には、"curl"という名前のフォルダーがある必要
    があり、そのフォルダには、ファイルeash.hおよびcurl.hがある必要があ
    ります。"libcurl.a"という名前のファイルがディレクトリ"lib"にある必
    要があります。
   </para>
   <para>
    これらの関数はPHP 4.0.2 で追加されました。
   </para>
   <para>
    PHPをCURLサポート機能付きでコンパイルした場合、curl関数を使用可能
    となります。CURL関数の基本的な使用法は、
    <function>curl_init</function>によりCURLセッションを初期化し、
    続いて<function>curl_exec</function>により転送を実行し、
    <function>curl_close</function>によりセッションを終了するというも
    のになります。CURL関数を使用してPHPホームページをファイルに取得す
    る例を示します。
    <example>
     <title>PHPのCURLモジュールを使用してPHPホームページを取得する</title>
     <programlisting role="php">
<![CDATA[
<?php

$ch = curl_init ("http://www.php.net/");
$fp = fopen ("php_homepage.txt", "w");

curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>
]]>
     </programlisting>
    </example>
   </para>
  </partintro>

  <refentry id="function.curl-init">
   <refnamediv>
    <refname>curl_init</refname>
    <refpurpose>CURLセッションを初期化</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>curl_init</methodname>
      <methodparam><type>string</type><parameter>
        <replaceable><optional>url</optional></replaceable>
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>curl_init</function>は新規セッションを初期化し、CURLハ
     ンドルを返します。このハンドルは、関数
     <function>curl_setopt</function>, <function>curl_exec</function>,
     <function>curl_close</function> で使用します。オプションのパラメー
     タ <parameter>url</parameter>を指定した場合、オプション
     CURLOPT_URLがそのパラメータの値に設定されます。関数
     <function>curl_setopt</function>により、この値をマニュアルで設定
     することも可能です。
     <example>
      <title>
       新規CURLセッションを初期化し、Webページを取得する
      </title>
      <programlisting role="php">
<![CDATA[
<?php
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://www.zend.com/");
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);

curl_close ($ch);
?>
]]>
      </programlisting>
     </example>
    </para>
    <para>
     <function>curl_close</function>,
     <function>curl_setopt</function>も参照下さい。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.curl-setopt">
   <refnamediv>
    <refname>curl_setopt</refname>
    <refpurpose>CURL転送用オプションを設定する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>curl_setopt</methodname>
      <methodparam><type>int</type><parameter>ch</parameter></methodparam>
      <methodparam><type>string</type><parameter>option</parameter></methodparam>
      <methodparam><type>mixed</type><parameter>value</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数 <function>curl_setopt</function> は、パラメータ
     <parameter>ch</parameter>で指定したCURLセッションのオプションを設
     定します。パラメータ <parameter>option</parameter> には設定するオ
     プションを指定し、<parameter>value</parameter> には
     <parameter>option</parameter>で指定したオプションの値を指定します。
    </para>
    <para>
     <parameter>value</parameter> には、(<parameter>option</parameter>で指
     定した)以下のオプションをlong値で指定する必要があります。
     <itemizedlist>
      <listitem>
       <simpara>
        <parameter>CURLOPT_INFILESIZE</parameter>: リモートサイトにファ
        イルをアップロードした際に、このオプションが使用され、infileの
        サイズの予測値をPHPに教えます。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_VERBOSE</parameter>: CURLで発生事象を全て出
        力させたい場合にこのオプションにゼロ以外の値を設定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_HEADER</parameter>: 出力にヘッダを挿入した
        い場合にこのオプションにゼロ以外の値をlongで設定します。
       </simpara>
      </listitem>
      <listitem>
       <para>
	<parameter>CURLOPT_NOPROGRESS</parameter>: CURL転送の進捗状況
	をPHPに表示させたくない場合にこのオプションにゼロ以外の値を
	longで設定します。
        <note>
         <simpara>
          PHP は、自動的にこのオプションにゼロ以外のパラメータをlongで
	  設定します。このオプションを変更するのはデバッグ時のみとする
	  べきです。
         </simpara>
        </note>
       </para>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_NOBODY</parameter>:出力にボディを含ませたく
        ない場合にこのオプションにゼロ以外のlong値を設定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_FAILONERROR</parameter>: 300以上のHTTPコー
        ドが返された場合に、PHPを失敗させたい場合にゼロ以外のlong値を
        設定します。デフォルトの動作は、コードを無視して普通にページを返します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_UPLOAD</parameter>: PHPにアップロードを行う
        準備をさせたい場合にこのオプションにゼロ以外のlong値を設定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_POST</parameter>: PHPに通常のHTTP POSTを行
        わせたい場合にゼロ以外のlong値を設定します。
	このPOSTはHTMLフォームで一般に使用される通常の
        application/x-www-from-urlencoded 型になります。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_FTPLISTONLY</parameter>: 
	このオプションにゼロ以外のlong値を設定すると、PHPは、FTPディレクト
	リの名前のリストを作成します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_FTPAPPEND</parameter>: このオプションにゼロ
        以外のlong値を設定すると、PHPはリモートファイルを上書きせずに追加
        します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_NETRC</parameter>: このオプションにゼロ以外
        のlong値を設定すると、PHPは、接続を行うリモートサイトのユーザ名と
        パスワードを見付けるためにファイル~./netrcをスキャンします。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_FOLLOWLOCATION</parameter>: このオプション
	にゼロ以外のlong値を設定すると、サーバーがHTTPヘッダの一部として
	送信した"Location: "ヘッダに従います。(注:これは再帰的に行われ、
	PHPは送信された"Location: "ヘッダに全て従います)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_PUT</parameter>: このオプションはゼロ以外の
	long値を設定した場合、ファイルのHTTP PUTを行います。PUTを行うファ
	イルはCURLOPT_INFILEおよびCURLOPT_INFILESIZEで指定する必要があ
	ります。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_MUTE</parameter>: このオプションにゼロ以外
        のlong値を設定した場合、PHPはCURL関数の実行に際して全く出力を行い
        ません。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_TIMEOUT</parameter>: curl関数の実行に許可す
        る最大時間を秒でパラメータでlong値で指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_LOW_SPEED_LIMIT</parameter>: バイト/秒で転
        送速度をパラメータでlongで指定します。CURLOPT_LOW_SPEED_TIME 秒以下
        の場合、転送速度が低いとみなし、処理を中断します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_RESUME_FROM</parameter>: 転送を開始したい位
        置のオフセットをバイト数でlongで指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_SSLVERSION</parameter>:使用するSSLバージョ
        ン(2または3)を有するパラメータをlongで指定します。デフォルトで
	PHPはこれを定義しますが、いくつかのケースでは、マニュアルでこ
        の値を設定する必要があります。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_TIMECONDITION</parameter>:
        CURLOPT_TIMEVALUEの処理方法を定義するパラメータをlongで指定し
        ます。このパラメータでTIMECOND_IFMODSINCEまたは
        TIMECOND_ISUNMODSINCEを設定することが可能です。この機能はHTTP
        のみの機能です。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_TIMEVALUE</parameter>: January 1st, 1970か
        らの時間を秒数でパラメータとしてlongを指定します。
	オプションCURLOPT_TIMEVALUEで指定した値を時間が使用され、
	デフォルトでTIMECOND_IFMODSINCEが使用されます。
       </simpara>
      </listitem>
     </itemizedlist>
    </para>
    <para>
     パラメータ<parameter>value</parameter>は、パラメータ
     <parameter>option</parameter>の値により次の値を文字列で指定する必要
     があります。
     <itemizedlist>
      <listitem>
       <simpara>
        <parameter>CURLOPT_URL</parameter>: PHPで取得するURL。
	<function>curl_init</function>でセッションを初期化する際にこの
	オプションをしようすることも可能です。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_USERPWD</parameter>: PHPが接続する際に使用
        するために[username]:[password]形式のフォーマットの文字列を指
        定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_PROXYUSERPWD</parameter>: PHPがHTTPプロキシ
        接続する際に使用するために[username]:[password]形式のフォーマッ
        トの文字列を指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_RANGE</parameter>: 範囲を指定します。
	"X-Y"形式で指定する必要があります。ただし、XまたはYは省略でき
	ます。HTTP転送はX-Y,N-Mのようにカンマで区切られた複数の間隔も
	サポートします。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_POSTFIELDS</parameter>: HTTP "POST" 命令で
        ポストするデータ全体を保持する文字列を指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_REFERER</parameter>: HTTPリクエストで使用す
        る"referer"ヘッダを有する文字列を指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_USERAGENT</parameter>: HTTPリクエストで使用
        する"user-agent"ヘッダを有する文字列を指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_FTPPORT</parameter>:ftp "POST" コマンドを使
        用する際にIPアドレスを取得するために使用される文字列を指定します。
	POST命令は指定したIPアドレスに接続するリモートサーバーを教えま
	す。この文字列には、IPアドレス、ホスト名、(UNIXの)ネットワークイ
	ンターフェース名、システムのデフォルトIPアドレスを指定する'-'
	を使用することが可能です。
        </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_COOKIE</parameter>: HTTPヘッダで設定するクッ
        キーの内容を有する文字列を指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_SSLCERT</parameter>: PEM形式の認証のファイ
        ル名を有する文字列を指定します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_SSLCERTPASSWD</parameter>: 
	CURLOPT_SSLCERT認証を使用する際に必要なパスワードを有する文字
	列を返します。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_COOKIEFILE</parameter>: クッキーデータを有
        するファイルの名前を有する文字列を指定します。
	クッキーファイルは、Netscape形式または単にHTTP形式のヘッダをファ
        イルにダンプしたものとなります。
       </simpara>
      </listitem>
      <listitem>
       <para>
        <parameter>CURLOPT_CUSTOMREQUEST</parameter>:HTTPリクエストを
        実行する際にGETまたはHEADの代わりに使用される文字列を指定します。
	DELETEや他のもっと単純なHTTPリクエストを実行する場合に便利です。
        <note>
         <simpara>
	  まずそのコマンドをサーバーがサポートすることが確認できない場合に
          はこれを行うべきではありません。
         </simpara>
        </note>
       </para>
      </listitem>
     </itemizedlist>
    </para>
    <para>
     次のオプションには、関数<function>fopen</function>を使用して得ら
     れたÕァイル記述子を指定します。
     <itemizedlist>
      <listitem>
       <simpara>
        <parameter>CURLOPT_FILE</parameter>: 転送の出力を行うファイル
        ファイル、デフォルトはSTDOUT。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_INFILE</parameter>: 転送の入力元のファイル
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_WRITEHEADER</parameter>: 出力のヘッダ部を書
        き込むファイル
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        <parameter>CURLOPT_STDERR</parameter>: stderrの代わりにエラー
        を書き込むファイル
       </simpara>
      </listitem>
     </itemizedlist>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.curl-exec">
   <refnamediv>
    <refname>curl_exec</refname>
    <refpurpose>CURLセッションを実行する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>curl_exec</methodname>
      <methodparam><type>int</type><parameter>ch</parameter></methodparam>
     </methodsynopsis>
    <para>
     この関数は、CURLセッションを初期化し、オプションを全て設定した後
     にコールする必要があります。この関数は、
     (<parameter>ch</parameter>で指定した)既存のCURLセッションを実
     行する目的で使用されます。
    </para>
     &tip.ob-capture;
   </refsect1>
  </refentry>

  <refentry id="function.curl-close">
   <refnamediv>
    <refname>curl_close</refname>
    <refpurpose>CURLセッションを閉じる</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>void</type><methodname>curl_close</methodname>
      <methodparam><type>int</type><parameter>ch</parameter></methodparam>
     </methodsynopsis>
    <para>
     この関数は、CURLセッションを閉じ、全てのリソースを開放します。
     CURLハンドル<parameter>ch</parameter>は削除されます。
    </para>
   </refsect1>
  </refentry>
  
  <refentry id="function.curl-version">
   <refnamediv>
    <refname>curl_version</refname>
    <refpurpose>カレントのCURLのバージョンを返す</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>string</type><methodname>curl_version</methodname>
      <void/>
     </methodsynopsis>
    <para>
     関数<function>curl_version</function>はカレントのCURLのバージョン
     を有する文字列を返します。 
    </para>
   </refsect1>
  </refentry>

  <refentry id='function.curl-errno'>
   <refnamediv>
    <refname>curl_errno</refname>
    <refpurpose>直近のエラー番号を意味する整数を返す</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>curl_errno</methodname>
      <methodparam><type>int</type><parameter>ch</parameter></methodparam>
     </methodsynopsis>
    <para>
     &warn.undocumented.func;
    </para>
   </refsect1>
  </refentry>

  <refentry id='function.curl-error'>
   <refnamediv>
    <refname>curl_error</refname>
    <refpurpose>
     カレントのセッションに関して直近のエラー文字列を返す
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>string</type><methodname>curl_error</methodname>
      <methodparam><type>int</type><parameter>ch</parameter></methodparam>
     </methodsynopsis>
    <para>
     &warn.undocumented.func;
    </para>
   </refsect1>
  </refentry>

  <refentry id='function.curl-getinfo'>
   <refnamediv>
    <refname>curl_getinfo</refname>
    <refpurpose>
     指定した伝送に関する情報を得る
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>string</type><methodname>curl_getinfo</methodname>
      <methodparam><type>int</type><parameter>ch</parameter></methodparam>
      <methodparam><type>int</type><parameter>opt</parameter></methodparam>
     </methodsynopsis>
    <para>
     &warn.undocumented.func;
    </para>
   </refsect1>
  </refentry>

 </reference>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->