-
Notifications
You must be signed in to change notification settings - Fork 56
/
curl-setopt.xml
2787 lines (2776 loc) · 135 KB
/
curl-setopt.xml
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
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 310963ad9ab1c2ca315361ff94314a21fa65f8b8 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,mumumu -->
<refentry xml:id="function.curl-setopt" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>curl_setopt</refname>
<refpurpose>cURL 転送用オプションを設定する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>curl_setopt</methodname>
<methodparam><type>CurlHandle</type><parameter>handle</parameter></methodparam>
<methodparam><type>int</type><parameter>option</parameter></methodparam>
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<para>
指定した cURL セッションハンドルのオプションを設定します。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&curl.ch.description;
<varlistentry>
<term><parameter>option</parameter></term>
<listitem>
<para>
設定したい <literal>CURLOPT_XXX</literal> オプション。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
<parameter>option</parameter> に設定する値。
</para>
<para>
<parameter>value</parameter> には、
<parameter>option</parameter> の以下の値に関して
bool 値を指定する必要があります。
<informaltable>
<tgroup cols="3">
<thead>
<row>
<entry valign="top">オプション</entry>
<entry valign="top"><parameter>value</parameter> への設定値</entry>
<entry valign="top">注記</entry>
</row>
</thead>
<tbody>
<row>
<entry valign="top"><constant>CURLOPT_AUTOREFERER</constant></entry>
<entry valign="top">
&true; を設定すると、<literal>Location:</literal> によるリダイレクトを
たどる際には自動的に <literal>Referer:</literal> フィールドをリクエストに
追加します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_COOKIESESSION</constant></entry>
<entry valign="top">
&true; を設定すると、クッキーの "セッション" を新しく開始します。
以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、
libcurl に指示します。デフォルトでは、それがセッションクッキーであるか
どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。
セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ
有効であるクッキーのことです。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_CERTINFO</constant></entry>
<entry valign="top">
&true; を設定すると、セキュアな転送時に SSL 証明書の情報を
<constant>STDERR</constant> に出力します。
</entry>
<entry valign="top">
cURL 7.19.1 で追加されました。
これを使うには、<constant>CURLOPT_VERBOSE</constant>
を on にしておかなければなりません。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_CONNECT_ONLY</constant></entry>
<entry valign="top">
&true; を設定すると、プロキシの認証や接続の確立などをすべて行いますが、データは転送しません。
このオプションは、HTTP や SMTP そして POP3 用に実装されています。
</entry>
<entry valign="top">
cURL 7.15.2 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_CRLF</constant></entry>
<entry valign="top">
&true; を設定すると、転送時に Unix 形式の改行を CRLF 形式に変換します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_DISALLOW_USERNAME_IN_URL</constant></entry>
<entry valign="top">
ユーザー名をURLに含めてはいけない場合に &true; にします。
デフォルトは 0 で、ユーザー名は許可されています。
</entry>
<entry valign="top">
cURL 7.61.0 で追加されました。
PHP 7.3.0 以降で利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_DNS_SHUFFLE_ADDRESSES</constant></entry>
<entry valign="top">
名前が解決され、ひとつ以上のIPアドレスが返された際、
ランダムな順番でそれらを利用するために、
返されたアドレスの順番をシャッフルする場合に &true; にします。
これによって、IPv6 アドレスの前に IPv4 アドレスが使われるなどの事象が起こるかもしれません。
</entry>
<entry valign="top">
cURL 7.60.0 で追加されました。
PHP 7.3.0 以降で利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HAPROXYPROTOCOL</constant></entry>
<entry valign="top">
HAProxy Proxy プロトコル v1 ヘッダを接続の開始時に送信する場合に &true; にします。
デフォルトではこのヘッダは送信されません。
</entry>
<entry valign="top">
cURL 7.60.0 で追加されました。
PHP 7.3.0 以降で利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SSH_COMPRESSION</constant></entry>
<entry valign="top">
ビルトインの SSH 圧縮を有効にする場合に &true; にします。
これはリクエストであり、命令ではありません。
つまり、圧縮されるかどうかはサーバー次第です。
</entry>
<entry valign="top">
cURL 7.56.0 で追加されました。
PHP 7.3.0 以降で利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_DNS_USE_GLOBAL_CACHE</constant></entry>
<entry valign="top">
&true; を設定すると、グローバル DNS キャッシュを利用します。
このオプションはスレッドセーフではありません。
また、PHP がスレッドセーフでない用途でビルドされている場合
(CLI, FCGI, Apache2-Prefork など) には、デフォルトで有効になっています。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FAILONERROR</constant></entry>
<entry valign="top">
&true; を設定すると、HTTP で 400 以上のコードが返ってきた際に
処理失敗と判断します。デフォルトでは、コードの値を無視して
ページの内容を取得します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SSL_FALSESTART</constant></entry>
<entry valign="top">
&true; にすると、TLS false start を有効にします。
</entry>
<entry valign="top">
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FILETIME</constant></entry>
<entry valign="top">
&true; を設定すると、ドキュメントの更新日時を取得しようと試みます。
この値を取得するには、<function>curl_getinfo</function> で
<constant>CURLINFO_FILETIME</constant> オプションを用います。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FOLLOWLOCATION</constant></entry>
<entry valign="top">
&true; を設定すると、サーバーが HTTP ヘッダの一部として送ってくる
<literal>"Location: "</literal> ヘッダの内容をたどります。
<constant>CURLOPT_MAXREDIRS</constant> も参照ください。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FORBID_REUSE</constant></entry>
<entry valign="top">
&true; を設定すると、処理が終了した際に明示的に接続を切断します。
接続を再利用しません。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FRESH_CONNECT</constant></entry>
<entry valign="top">
&true; を設定すると、キャッシュされている接続を利用せずに
新しい接続を確立します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTP_USE_EPRT</constant></entry>
<entry valign="top">
&true; を設定すると、FTP のダウンロードに EPRT(および LPRT)
を利用します。&false; の場合は EPRT・LPRT を無効にして PORT
を利用します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTP_USE_EPSV</constant></entry>
<entry valign="top">
&true; を設定すると、FTP 転送の際にまず EPSV コマンドの利用を
試みます。失敗した場合は PASV を利用します。&false; を設定すると、
EPSV を無効にします。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTP_CREATE_MISSING_DIRS</constant></entry>
<entry valign="top">
&true; を設定すると、FTP の操作中にパスが存在しなかったときに
ディレクトリを作成します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTPAPPEND</constant></entry>
<entry valign="top">
&true; を設定すると、リモートファイルを上書きせずに追記します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_TCP_NODELAY</constant></entry>
<entry valign="top">
&true; にすると、TCP の Nagle アルゴリズムを解除します。解除すると、小さなパケットがネットワーク上を流れる回数をできるだけ減らそうと試みます。
</entry>
<entry valign="top">
libcurl 7.11.2 以降と組み合わせてコンパイルしたときに利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTPASCII</constant></entry>
<entry valign="top">
<constant>CURLOPT_TRANSFERTEXT</constant> のエイリアスです。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTPLISTONLY</constant></entry>
<entry valign="top">
&true; を設定すると、FTP でディレクトリ名のみ表示します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HEADER</constant></entry>
<entry valign="top">
&true; を設定すると、ヘッダの内容も出力します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLINFO_HEADER_OUT</constant></entry>
<entry valign="top">
&true; を設定すると、リクエスト文字列を追跡します。
</entry>
<entry valign="top">
プレフィックスが <constant>CURLINFO_</constant>
となっているのは意図的なものです。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HTTP09_ALLOWED</constant></entry>
<entry valign="top">
HTTP/0.9 形式のレスポンスを許可するかどうか。libcurl 7.66.0 以降のデフォルトは &false; です。
それより前のバージョンのデフォルトは &true; でした。
</entry>
<entry valign="top">
PHP 7.3.15 と 7.4.3 以降 および cURL >= 7.64.0 をビルドした場合に使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HTTPGET</constant></entry>
<entry valign="top">
&true; を設定すると、HTTP のリクエスト形式を GET に戻します。
GET はデフォルト設定なので、リクエスト形式が変更されている
場合にのみ必要となります。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HTTPPROXYTUNNEL</constant></entry>
<entry valign="top">
&true; にすると、指定された HTTP プロキシを介してトンネルします。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HTTP_CONTENT_DECODING</constant></entry>
<entry valign="top">
&false; を設定すると、生の HTTP レスポンスボディを取得します。
</entry>
<entry valign="top">
libcurl >= 7.16.2 とビルドした場合に利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_KEEP_SENDING_ON_ERROR</constant></entry>
<entry valign="top">
返されたHTTPコードが300以上であっても、リクエストボディを送信し続ける場合は &true; にします。
デフォルトのアクションはリクエストボディの送信を止め、
ストリームまたは接続を閉じます。
手動でNTLM認証を行う場合に、このオプションは適切です。
ほとんどのアプリケーションは、このオプションは不要です。
</entry>
<entry valign="top">
PHP 7.3.0 以降で、libcurl >= 7.51.0 とビルドした場合に利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MUTE</constant></entry>
<entry valign="top">
&true; を設定すると、cURL 関数に関連する出力を完全に抑えます。
</entry>
<entry valign="top">
cURL 7.15.5 で削除されました (かわりに CURLOPT_RETURNTRANSFER が使えます)
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_NETRC</constant></entry>
<entry valign="top">
&true; を設定すると、リモートサイトと接続を確立する際に用いる
ユーザー名やパスワードを、<filename>~/.netrc</filename> から取得します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_NOBODY</constant></entry>
<entry valign="top">
&true; を設定すると、出力から本文を削除します。
リクエストメソッドは HEAD となります。これを &false;
に変更してもリクエストメソッドは GET には変わりません。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_NOPROGRESS</constant></entry>
<entry valign="top">
&true; を設定すると、cURL 転送の進捗状況表示を無効にします。
<note>
<para>
PHP は、このオプションを自動的に &true; に設定します。
これを変更するのは、デバッグ時のみにすべきです。
</para>
</note>
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_NOSIGNAL</constant></entry>
<entry valign="top">
&true; を設定すると、cURL 関数が PHP プロセスに送信するシグナルを
無視します。マルチスレッド SAPI ではデフォルトで on となっており、
そのためタイムアウトオプションもまだ利用されています。
</entry>
<entry valign="top">
cURL 7.10 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PATH_AS_IS</constant></entry>
<entry valign="top">
&true; にすると、ドットの連続を処理しません。
</entry>
<entry valign="top">
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PIPEWAIT</constant></entry>
<entry valign="top">
&true; にすると、パイプライン化/多重化を待ちます。
</entry>
<entry valign="top">
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_POST</constant></entry>
<entry valign="top">
&true; を設定すると、HTTP POST を行います。POST は、
<literal>application/x-www-form-urlencoded</literal> 形式で
行われます。これは一般的な HTML のフォームと同じ形式です。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PUT</constant></entry>
<entry valign="top">
&true; を設定すると、HTTP PUT を行います。PUT するファイルは
<constant>CURLOPT_INFILE</constant> および
<constant>CURLOPT_INFILESIZE</constant>
で指定されている必要があります。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_RETURNTRANSFER</constant></entry>
<entry valign="top">
&true; を設定すると、<function>curl_exec</function> の戻り値を
文字列で返します。通常はデータを直接出力します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SASL_IR</constant></entry>
<entry valign="top">
&true; にすると、最初のパケット内の最初のレスポンスの送信を有効にします。
</entry>
<entry valign="top">
cURL 7.31.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SSL_ENABLE_ALPN</constant></entry>
<entry valign="top">
&false; にすると、SSL ハンドシェイクの際の ALPN を無効にします
(SSL バックエンドの libcurl がそれに対応するビルドである場合)。
これは、http2 ネゴシエーションに使えます。
</entry>
<entry valign="top">
cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SSL_ENABLE_NPN</constant></entry>
<entry valign="top">
&false; にすると、SSL ハンドシェイクの際の NPN を無効にします
(SSL バックエンドの libcurl がそれに対応するビルドである場合)。
これは、http2 ネゴシエーションに使えます。
</entry>
<entry valign="top">
cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SSL_VERIFYPEER</constant></entry>
<entry valign="top">
&false; を設定すると、cURL はサーバー証明書の検証を行いません。
別の証明書を <constant>CURLOPT_CAINFO</constant> オプションで
指定するか、<constant>CURLOPT_CAPATH</constant> オプションで
証明ディレクトリを指定します。
</entry>
<entry valign="top">
cURL 7.10 以降、デフォルト値は &true; です。また、
cURL 7.10 以降、デフォルトでインストールされています。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SSL_VERIFYSTATUS</constant></entry>
<entry valign="top">
&true; にすると、証明書のステータスを検証します。
</entry>
<entry valign="top">
cURL 7.41.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PROXY_SSL_VERIFYPEER</constant></entry>
<entry valign="top">
&false; を設定すると、cURL がピアの証明書の検証を行わなくなります。
別の証明書を検証するには、<constant>CURLOPT_CAINFO</constant> オプションで指定するか、
<constant>CURLOPT_CAPATH</constant> を使って証明書のディレクトリを指定するやり方が使えます。
&false; を指定すると、ピアの証明書の検証はオプションに関係なく成功します。
</entry>
<entry valign="top">
&true; がデフォルトです。
PHP 7.3.0 以降で、libcurl >= 7.52.0 とビルドした場合に利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SAFE_UPLOAD</constant></entry>
<entry valign="top">
この値は常に &true; になります。
<constant>CURLOPT_POSTFIELDS</constant>
を使ってファイルをアップロードする際に、
プレフィックス <literal>@</literal> のサポートを無効にします。
これは、<literal>@</literal>
で始まる値を安全にフィールドに渡せるということです。
<classname>CURLFile</classname> も代わりに使えます。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_SUPPRESS_CONNECT_HEADERS</constant></entry>
<entry valign="top">
&true; を設定すると、
<constant>CURLOPT_HTTPPROXYTUNNEL</constant> を使って CONNECT リクエストが生成された場合に、
ユーザーのコールバック関数
<constant>CURLOPT_HEADERFUNCTION</constant> および <constant>CURLOPT_WRITEFUNCTION</constant>
では proxy CONNECT のレスポンスヘッダを抑制します。
</entry>
<entry valign="top">
cURL 7.54.0 で追加されました。PHP 7.3.0 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_TCP_FASTOPEN</constant></entry>
<entry valign="top">
&true; にすると、TCP Fast Open を有効にします。
</entry>
<entry valign="top">
cURL 7.49.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_TFTP_NO_OPTIONS</constant></entry>
<entry valign="top">
&true; にすると、TFTP オプションリクエストを送信しません。
</entry>
<entry valign="top">
cURL 7.48.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_TRANSFERTEXT</constant></entry>
<entry valign="top">
&true; を設定すると、FTP 転送を ASCII モードで行います。
LDAP の場合は、データを HTML ではなくプレーンテキストで取得します。
Windows システムでは <constant>STDOUT</constant>
に対してバイナリモードを設定しないでください。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_UNRESTRICTED_AUTH</constant></entry>
<entry valign="top">
&true; を設定すると、(<constant>CURLOPT_FOLLOWLOCATION</constant>
を利用して)場所をたどっていく際にユーザー名とパスワードを送信し続けます。
これは、たとえホスト名が変わっても続けられます。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_UPLOAD</constant></entry>
<entry valign="top">
&true; を設定すると、アップロードの準備をします。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_VERBOSE</constant></entry>
<entry valign="top">
&true; を設定すると、詳細な情報を出力します。情報は
<constant>STDERR</constant> か、または
<constant>CURLOPT_STDERR</constant>
で指定したファイルに出力されます。
</entry>
<entry valign="top">
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
<para>
<parameter>value</parameter> には、
<parameter>option</parameter> の以下の値に関して
整数値を指定する必要があります。
<informaltable>
<tgroup cols="3">
<thead>
<row>
<entry>オプション</entry>
<entry><parameter>value</parameter> への設定値</entry>
<entry>注記</entry>
</row>
</thead>
<tbody>
<row>
<entry valign="top"><constant>CURLOPT_BUFFERSIZE</constant></entry>
<entry valign="top">
1 回の読み込みに用いるバッファのサイズ。しかしながら、必ず
このバッファいっぱいまで読み込まれることを保証するものではありません。
</entry>
<entry valign="top">
cURL 7.10 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_CONNECTTIMEOUT</constant></entry>
<entry valign="top">
接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_CONNECTTIMEOUT_MS</constant></entry>
<entry valign="top">
接続の試行を待ち続けるミリ秒数。0 は永遠に待ち続けることを意味します。
<!-- http://curl.haxx.se/libcurl/c/curl_easy_setopt.html -->
システムの標準の名前解決を使うように libcurl をビルドしている場合は、
接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。
</entry>
<entry valign="top">
cURL 7.16.2 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_DNS_CACHE_TIMEOUT</constant></entry>
<entry valign="top">
DNS エントリをメモリ内に保持し続ける秒数。デフォルトでは
120(2 分)に設定されています。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_EXPECT_100_TIMEOUT_MS</constant></entry>
<entry valign="top">
<literal>Expect: 100-continue</literal> のレスポンスを待つタイムアウト。
ミリ秒で指定します。
デフォルトは1000ミリ秒です。
</entry>
<entry valign="top">
cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS</constant></entry>
<entry valign="top">
Happy Eyeballs アルゴリズムで IPv6 接続を優先して開始します。
Happy Eyeballs アルゴリズムは、
デュアルスタックホストのために IPv4 と IPv6アドレス両方に接続を試みますが、
IPv6 を優先して扱い、そのタイムアウトをミリ秒単位で指定します。
デフォルトは CURL_HET_DEFAULT であり、現状は200ミリ秒です。
</entry>
<entry valign="top">
cURL 7.59.0 で追加されました。PHP 7.3.0 以降で使用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_FTPSSLAUTH</constant></entry>
<entry valign="top">
(使用可能な場合の)FTP 認証方法。
<constant>CURLFTPAUTH_SSL</constant>(まず SSL を試す)、
<constant>CURLFTPAUTH_TLS</constant>(まず TLS を試す)あるいは
<constant>CURLFTPAUTH_DEFAULT</constant>(cURL が決める)のいずれかです。
</entry>
<entry valign="top">
cURL 7.12.2 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HEADEROPT</constant></entry>
<entry valign="top">
<para>
ヘッダをどう扱うかを指定します。
次の定数のうち、一つを指定できます:
<variablelist>
<varlistentry>
<term>CURLHEADER_UNIFIED</term>
<listitem>
<simpara>
<constant>CURLOPT_HTTPHEADER</constant> で指定されたヘッダが、
サーバーとプロキシ双方のリクエストに対して使われます。
このオプションが有効な場合、
<constant>CURLOPT_PROXYHEADER</constant> は効果がありません。
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>CURLHEADER_SEPARATE</term>
<listitem>
<simpara>
<constant>CURLOPT_HTTPHEADER</constant> で指定されたヘッダは、
プロキシには送られず、サーバーにのみ送られます。
プロキシに送るヘッダは、
<constant>CURLOPT_PROXYHEADER</constant> を設定しなければなりません。
CONNECT でないリクエストがプロキシに送信された場合、
libcurl はサーバーとプロキシ両方にヘッダを送信することに注意してください。
CONNECT リクエストを送信する場合、
libcurl は <constant>CURLOPT_PROXYHEADER</constant>
をプロキシのみに送り、
<constant>CURLOPT_HTTPHEADER</constant> をサーバーにのみ送信します。
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<simpara>
cURL 7.42.1 以降は
<constant>CURLHEADER_SEPARATE</constant> がデフォルトで、
それより前では、
<constant>CURLHEADER_UNIFIED</constant> がデフォルトでした。
</simpara>
</entry>
<entry valign="top">
cURL 7.37.0 で追加されました。PHP 7.0.7 以降で利用可能です。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HTTP_VERSION</constant></entry>
<entry valign="top">
<constant>CURL_HTTP_VERSION_NONE</constant> (デフォルト。
使用するバージョンを決めるのは cURL にまかせる)、
<constant>CURL_HTTP_VERSION_1_0</constant> (HTTP/1.0 を使用する)、
あるいは <constant>CURL_HTTP_VERSION_1_1</constant> (HTTP/1.1 を使用する)
<constant>CURL_HTTP_VERSION_2_0</constant> (HTTP 2 の使用を試みる),
<constant>CURL_HTTP_VERSION_2</constant> (<constant>CURL_HTTP_VERSION_2_0</constant> のエイリアス),
<constant>CURL_HTTP_VERSION_2TLS</constant> (TLS (https) の場合のみ HTTP 2 の使用を試みる) または
<constant>CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE</constant> (HTTP 1.1 へのアップグレードを行わず、HTTP/2 を使って TLS でないリクエストを発行する)
のいずれかです。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_HTTPAUTH</constant></entry>
<entry valign="top">
<para>
使用する HTTP 認証方法。以下の中から選びます。
<constant>CURLAUTH_BASIC</constant>、
<constant>CURLAUTH_DIGEST</constant>、
<constant>CURLAUTH_GSSNEGOTIATE</constant>、
<constant>CURLAUTH_NTLM</constant>、
<constant>CURLAUTH_AWS_SIGV4</constant>、
<constant>CURLAUTH_ANY</constant> および
<constant>CURLAUTH_ANYSAFE</constant>。
</para>
<para>
2 つ以上の方法を組み合わせるには、ビット演算子 <literal>|</literal>(or)
を使用します。このような場合、cURL はサーバーがサポートしている方法を
問い合わせたうえで最適な方法を選択します。
</para>
<para>
<constant>CURLAUTH_ANY</constant> は、全てのビットを設定します。
この場合 cURL は、もっともセキュアなものを自動で選択します。
</para>
<para>
<constant>CURLAUTH_ANYSAFE</constant> は、
<constant>CURLAUTH_BASIC</constant> 以外の全てのビットを設定します。
この場合 cURL は、もっともセキュアなものを自動で選択します。
</para>
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_INFILESIZE</constant></entry>
<entry valign="top">
ファイルをリモートサイトにアップロードする際のファイルサイズ。
このオプションを指定しても、libcurl がそれ以上のデータを送信するのは止められないことに注意しましょう。
実際に何が送信されるのかは
<constant>CURLOPT_READFUNCTION</constant> に依存します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_LOW_SPEED_LIMIT</constant></entry>
<entry valign="top">
1 秒あたりのバイト数で、転送速度がこれより遅い期間が
<constant>CURLOPT_LOW_SPEED_TIME</constant> 秒以上続いた場合に
PHP は転送を終了します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_LOW_SPEED_TIME</constant></entry>
<entry valign="top">
転送速度が <constant>CURLOPT_LOW_SPEED_LIMIT</constant>
より遅い期間がどれだけ続いた場合に転送を異常終了させるかを、
秒単位で指定します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MAIL_RCPT_ALLLOWFAILS</constant></entry>
<entry valign="top">
送信先によっては、RCPT TO コマンドが失敗することを許可します。
</entry>
<entry valign="top">
複数の送信先にデータを送る場合、
デフォルトで cURL は RCPT TO コマンドが送信先のうちひとつでも失敗すると、SMTP の通信を中止します。
このオプションは cURL にエラーを無視し、
有効な送信先の処理は続行するように指示します。
すべての送信先の RCPT TO コマンドが失敗した場合にこのフラグが設定されていた場合は、cURL は SMTP の通信を中止し、最後に実行された RCPT TO コマンドから受け取ったエラーを返します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MAXAGE_CONN</constant></entry>
<entry valign="top">
既存の接続を再利用して良いとみなす、アイドル時間の最大値。
デフォルトは <literal>118</literal> 秒に設定されています。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MAXFILESIZE_LARGE</constant></entry>
<entry valign="top">
ダウンロードできるファイルの最大サイズをバイト単位で設定します。
この値より大きなファイルがリクエストされた場合、
通信は開始されず、<constant>CURLE_FILESIZE_EXCEEDED</constant>
が返されます。
ダウンロードが始まる前にファイルサイズが常にわかっているわけではないので、ファイルの転送量が指定された最大サイズよりも結局大きかった場合は、このオプションは意味がありません。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MAXLIFETIME_CONN</constant></entry>
<entry valign="top">
接続が作成されてから、
既存の接続を再利用してもよいと見なすまでの時間の最大値。
秒単位で指定します。
接続がキャッシュに存在し、この値より古いことがわかった場合、
転送中の通信が完了した場合に接続は一度クローズされます。
デフォルトは0です。つまり、
このオプションは無効になっており、
あらゆる接続が再利用の対象になります。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MAXCONNECTS</constant></entry>
<entry valign="top">
許可される持続的接続の最大数。もしこの値に達した場合、
オープンされている接続数が増えるのを避けるため、
キャッシュされている接続のうち一番古いものを閉じます。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_MAXREDIRS</constant></entry>
<entry valign="top">
HTTP のリダイレクト先を追いかける最大値。
<constant>CURLOPT_FOLLOWLOCATION</constant> とあわせて使用します。
リダイレクトループを避けるため、
デフォルト値として <literal>20</literal> が設定されています。
<literal>-1</literal> を設定すると、リダイレクトループを許可します。
<literal>0</literal> を指定すると、全てのリダイレクトを拒否します。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PORT</constant></entry>
<entry valign="top">
接続先のポート番号。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_POSTREDIR</constant></entry>
<entry valign="top">
<constant>CURLOPT_FOLLOWLOCATION</constant> が設定されているときに、
どの形式のリダイレクトの場合に HTTP POST メソッドを維持するのかを、
1 (301 Moved Permanently)、2 (302 Found)、4 (303 See Other) のビットマスクで指定します。
</entry>
<entry valign="top">
cURL 7.19.1 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PROTOCOLS</constant></entry>
<entry valign="top">
<para>
<constant>CURLPROTO_*</constant> の値のビットマスク。使用すると、
転送時に libcurl がどのプロトコルを使用するのかに制約を加えます。
さまざまなプロトコルに対応するよう libcurl をビルドしていた場合でも、
これによって特定の転送プロトコルのみを使用するように制限することができます。
デフォルトでは、libcurl がサポートしているすべてのプロトコルの使用を許可します。
<constant>CURLOPT_REDIR_PROTOCOLS</constant> も参照ください。
</para>
<para>
使用できるプロトコルオプションは次のとおりです。
<constant>CURLPROTO_HTTP</constant>,
<constant>CURLPROTO_HTTPS</constant>,
<constant>CURLPROTO_FTP</constant>,
<constant>CURLPROTO_FTPS</constant>,
<constant>CURLPROTO_SCP</constant>,
<constant>CURLPROTO_SFTP</constant>,
<constant>CURLPROTO_TELNET</constant>,
<constant>CURLPROTO_LDAP</constant>,
<constant>CURLPROTO_LDAPS</constant>,
<constant>CURLPROTO_DICT</constant>,
<constant>CURLPROTO_FILE</constant>,
<constant>CURLPROTO_TFTP</constant>,
<constant>CURLPROTO_MQTT</constant>,
<constant>CURLPROTO_ALL</constant>
</para>
</entry>
<entry valign="top">
cURL 7.19.4 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PROXYAUTH</constant></entry>
<entry valign="top">
プロキシ接続に使用する HTTP 認証の方法。
<constant>CURLOPT_HTTPAUTH</constant> で説明したのと同じオプションを
指定可能です。プロキシ認証でサポートされているのは、今のところ
<constant>CURLAUTH_BASIC</constant> および
<constant>CURLAUTH_NTLM</constant> のみです。
</entry>
<entry valign="top">
cURL 7.10.7 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PROXYPORT</constant></entry>
<entry valign="top">
プロキシ接続のポート番号。このポート番号は、
<constant>CURLOPT_PROXY</constant> で指定することも可能です。
</entry>
<entry valign="top">
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_PROXYTYPE</constant></entry>
<entry valign="top">
<parameter>CURLPROXY_HTTP</parameter>(デフォルト)、
<constant>CURLPROXY_SOCKS4</constant>、
<constant>CURLPROXY_SOCKS5</constant>、
<constant>CURLPROXY_SOCKS4A</constant> あるいは
<constant>CURLPROXY_SOCKS5_HOSTNAME</constant>。
</entry>
<entry valign="top">
cURL 7.10 で追加されました。
</entry>
</row>
<row>
<entry valign="top"><constant>CURLOPT_REDIR_PROTOCOLS</constant></entry>
<entry valign="top">
<constant>CURLPROTO_*</constant> の値のビットマスク。使用すると、
<constant>CURLOPT_FOLLOWLOCATION</constant> が有効な場合のリダイレクト時の転送に
libcurl がどのプロトコルを使用するのかに制約を加えます。これによって、
リダイレクト時に特定の転送プロトコルのみを使用するように制限することができます。
デフォルトでは、libcurl がサポートしているすべてのプロトコルのうち
FILE と SCP 以外のすべての使用を許可します。この挙動は 7.19.4
より前のバージョンとは異なります。7.19.4 より前のバージョンでは、
サポートするすべてのプロトコルを無条件に許可していました。
プロトコル定数の値は <constant>CURLOPT_PROTOCOLS</constant> を参照ください。
</entry>
<entry valign="top">