PHP curl_setopt関数
(PHP 4 >= 4.0.2, PHP 5)
curl_setopt — cURL転送オプションを設定します。
説明
bool curl_setopt ( resource $ch , int $option , mixed $value )
指定されたcURLセッションハンドルにオプションを設定します。
パラメータ
ch
curl_init() によって返される cURL ハンドル。
option
設定する必要がある CURLOPT_XXX オプション。
value
option オプションに設定する値。
以下の option のオプションパラメータについては、value には bool 型の値を設定する必要があります:
| オプション | 任意value值 | 備考 |
|---|---|---|
| CURLOPT_AUTOREFERER | に基づいてLocation:リダイレクト時に、ヘッダー内の...を自動的に設定しますReferer:情報。 | |
| CURLOPT_BINARYTRANSFER | 有効にCURLOPT_RETURNTRANSFERした場合、ネイティブ(Raw)出力を返します。 | |
| CURLOPT_COOKIESESSION | 有効にすると、curlはセッションクッキーのみを渡し、他のクッキーは無視します。デフォルトでは、cURLはすべてのクッキーをサーバーに返します。セッションクッキーとは、サーバー側のセッションが有効かどうかを判断するために存在するクッキーです。 | |
| CURLOPT_CRLF | 有効にすると、Unixの改行を復帰改行(CRLF)に変換します。 | |
| CURLOPT_DNS_USE_GLOBAL_CACHE | 有効にすると、グローバルなDNSキャッシュが有効になります。この項目はスレッドセーフであり、デフォルトで有効です。 | |
| CURLOPT_FAILONERROR | HTTPステータスコードを表示します。デフォルトの動作では、400以下のHTTP情報は無視されます。 | |
| CURLOPT_FILETIME | 有効にすると、リモートドキュメント内の情報を変更しようとします。結果の情報は curl_getinfo() 関数のCURLINFO_FILETIMEcurl_getinfo(). | |
| CURLOPT_FOLLOWLOCATION | 有効にすると、サーバーが返した"Location: "をヘッダーに含めて再帰的にサーバーに返します。使用してCURLOPT_MAXREDIRS再帰的に返す回数を制限できます。 | |
| CURLOPT_FORBID_REUSE | インタラクション完了後に強制的に接続を切断し、再利用できません。 | |
| CURLOPT_FRESH_CONNECT | キャッシュ内の接続の代わりに、新しい接続を強制的に取得します。 | |
| CURLOPT_FTP_USE_EPRT | 有効にすると、FTPダウンロード時に EPRT(または LPRT)コマンドを使用します。に設定FALSEした場合、EPRTとLPRTを無効にし、PORTコマンドのみを使用します。 | |
| CURLOPT_FTP_USE_EPSV | 有効にすると、FTP転送中にPASVモードに戻る前に、まずEPSVコマンドを試行します。に設定FALSEした場合、EPSVコマンドを無効にします。 | |
| CURLOPT_FTPAPPEND | 有効にすると、ファイルを上書きせずに追記します。 | |
| CURLOPT_FTPASCII | CURLOPT_TRANSFERTEXTのエイリアス。 | |
| CURLOPT_FTPLISTONLY | 有効にすると、FTPディレクトリの名前のみを一覧表示します。 | |
| CURLOPT_HEADER | 有効にすると、ヘッダー情報をデータストリームとして出力します。 | |
| CURLINFO_HEADER_OUT | 有効にすると、ハンドルのリクエスト文字列を追跡します。 | PHP 5.1.3 以降で使用可能です。CURLINFO_プレフィックスは意図的(intentional)です。 |
| CURLOPT_HTTPGET | 有効にすると、HTTPのメソッドがGETに設定されます。GETはデフォルトであるため、変更された場合にのみ使用されます。 | |
| CURLOPT_HTTPPROXYTUNNEL | 有効にすると、HTTPプロキシを介して転送します。 | |
| CURLOPT_MUTE | 有効にすると、cURL関数で変更されたすべてのパラメータがデフォルト値に復元されます。 | |
| CURLOPT_NETRC | 接続が確立された後、~/.netrcファイルにアクセスしてユーザー名とパスワード情報を取得し、リモートサイトに接続します。 | |
| CURLOPT_NOBODY | 有効にすると、HTML内のBODY部分を出力しません。 | |
| CURLOPT_NOPROGRESS | 有効にすると、curl転送のプログレスバーが無効になります。この項目はデフォルトで有効です。
|
|
| CURLOPT_NOSIGNAL | 有効にすると、curlがPHPに渡すすべてのシグナルを無視します。SAPIマルチスレッド転送時には、この項目はデフォルトで有効です。 | cURL 7.10 で追加されました。 |
| CURLOPT_POST | 有効にすると、通常のPOSTリクエストを送信します。タイプは:application/x-www-form-urlencoded、フォーム送信のように。 | |
| CURLOPT_PUT | 有効にすると、HTTPでのファイル送信が許可されます。同時に設定する必要がありますCURLOPT_INFILEとCURLOPT_INFILESIZE。 | |
| CURLOPT_RETURNTRANSFER | curl_exec() が取得した情報を、直接出力するのではなくファイルストリームとして返します。 | |
| CURLOPT_SSL_VERIFYPEER | 無効にすると、cURLはサーバー側の検証を中止します。使用してCURLOPT_CAINFOオプションで証明書を設定し、使用してCURLOPT_CAPATHオプションで証明書ディレクトリを設定します。CURLOPT_SSL_VERIFYPEER(デフォルト値は2)が有効な場合、CURLOPT_SSL_VERIFYHOSTに設定する必要がありますTRUEそれ以外の場合は...に設定しますFALSE。 | cURL 7.10 以降、デフォルトはTRUE。cURL 7.10 以降、デフォルトでバンドルインストールされます。 |
| CURLOPT_TRANSFERTEXT | 有効にすると、FTP転送にASCIIモードを使用します。LDAPの場合、HTMLではなくプレーンテキスト情報を取得します。Windowsシステムでは、システムはSTDOUTをバイナリモードに設定しません。 | |
| CURLOPT_UNRESTRICTED_AUTH | を使用する場合にCURLOPT_FOLLOWLOCATION生成されたヘッダー内の複数のlocationsにユーザー名とパスワード情報を追加し続けます。ドメイン名が変更された場合でも。 | |
| CURLOPT_UPLOAD | 有効にすると、ファイルのアップロードが許可されます。 | |
| CURLOPT_VERBOSE | 有効にすると、すべての情報を報告し、STDERRまたは指定されたCURLOPT_STDERRに格納します。 |
以下の option のオプションパラメータについては、value には integer 型の値を設定する必要があります:
| オプション | 任意value值 | 備考 |
|---|---|---|
| CURLOPT_BUFFERSIZE | 取得するデータごとに読み込むバッファのサイズ。ただし、この値が毎回満たされるとは保証されません。 | cURL 7.10 で追加されました。 |
| CURLOPT_CLOSEPOLICY | CURLCLOSEPOLICY_LEAST_RECENTLY_USED または CURLCLOSEPOLICY_OLDEST のいずれかです。他にも3つの CURLCLOSEPOLICY がありますが、cURLは現時点ではサポートしていません。 | |
| CURLOPT_CONNECTTIMEOUT | 接続を開始する前に待機する時間。0に設定した場合は、無限に待機します。 | |
| CURLOPT_CONNECTTIMEOUT_MS | 接続を試みる際の待機時間。ミリ秒単位です。0に設定した場合は、無限に待機します。 | cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 |
| CURLOPT_DNS_CACHE_TIMEOUT | DNS情報をメモリに保存する時間を設定します。デフォルトは120秒です。 | |
| CURLOPT_FTPSSLAUTH | FTP認証方式:CURLFTPAUTH_SSL(まずSSLを試行)、CURLFTPAUTH_TLS(まずTLSを試行)、またはCURLFTPAUTH_DEFAULT(cURLに自動決定させます)。 | cURL 7.12.2 で追加されました。 |
| CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE(デフォルト値。cURLが使用するバージョンを自動的に判断します)、CURL_HTTP_VERSION_1_0(HTTP/1.0を強制使用)、またはCURL_HTTP_VERSION_1_1(HTTP/1.1を強制使用)。 | |
| CURLOPT_INFILESIZE | アップロードファイルのサイズ制限を設定します。単位はバイト(byte)です。 | |
| CURLOPT_LOW_SPEED_LIMIT | 転送速度がCURLOPT_LOW_SPEED_LIMIT未満の場合(bytes/sec)、PHPはCURLOPT_LOW_SPEED_TIMEに基づいて、転送が遅すぎるためにキャンセルするかどうかを判断します。 | |
| CURLOPT_LOW_SPEED_TIME | 転送速度がCURLOPT_LOW_SPEED_LIMIT未満の場合(bytes/sec)、PHPはCURLOPT_LOW_SPEED_TIMEに基づいて、転送が遅すぎるためにキャンセルするかどうかを判断します。 | |
| CURLOPT_MAXCONNECTS | 許可される最大接続数。超過した場合、CURLOPT_CLOSEPOLICYによって、どの接続を停止すべきかを決定します。 | |
| CURLOPT_MAXREDIRS | 最大のHTTPリダイレクト数を指定します。このオプションはCURLOPT_FOLLOWLOCATIONと一緒に使用されます。 | |
| CURLOPT_PORT | 接続ポートを指定するために使用します。(任意) | |
| CURLOPT_PROTOCOLS | CURLPROTO_*のビットフィールド値。有効にすると、ビットフィールド値はlibcurlが転送中に使用できるプロトコルを制限します。これにより、libcurlのコンパイル時に多数のプロトコルをサポートしながら、使用が許可されているサブセットのみに制限できます。デフォルトでは、libcurlはサポートするすべてのプロトコルを使用します。参照CURLOPT_REDIR_PROTOCOLS。利用可能なプロトコルオプションは次のとおりです:CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURLPROTO_TFTP、CURLPROTO_ALL | cURL 7.19.4 で追加されました。 |
| CURLOPT_PROTOCOLS | CURLPROTO_*のビットフィールド値。有効にすると、ビットフィールド値はlibcurlが転送中に使用できるプロトコルを制限します。これにより、libcurlのコンパイル時に多数のプロトコルをサポートしながら、使用が許可されているサブセットのみに制限できます。デフォルトでは、libcurlはサポートするすべてのプロトコルを使用します。参照CURLOPT_REDIR_PROTOCOLS利用可能なプロトコルオプションは次のとおりです: CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURLPROTO_TFTP、CURLPROTO_ALL | cURL 7.19.4 で追加されました。 |
| CURLOPT_PROXYAUTH | HTTPプロキシ接続の認証方式。使用するのは、CURLOPT_HTTPAUTHビットフィールドフラグを使用して、対応するオプションを設定します。プロキシ認証では、CURLAUTH_BASICとCURLAUTH_NTLM現在サポートされています。 | cURL 7.10.7 で追加されました。 |
| CURLOPT_PROXYPORT | プロキシサーバーのポート。ポートはCURLOPT_PROXY設定することもできます。 | |
| CURLOPT_PROXYTYPE | のどちらかCURLPROXY_HTTP(デフォルト値) またはCURLPROXY_SOCKS5。 | cURL 7.10 で追加されました。 |
| CURLOPT_REDIR_PROTOCOLS | CURLPROTO_*のビットフィールド値です。有効にすると、ビットフィールド値は転送スレッドを、CURLOPT_FOLLOWLOCATIONリダイレクトに従うときに使用できるプロトコルに制限します。これにより、リダイレクト時に転送スレッドが使用を許可されたプロトコルのサブセットに制限されます。デフォルトでは、libcurl は FILE と SCP を除くすべてのプロトコルを許可します。これは、7.19.4 プレリリース版で無条件にすべてのサポートされているプロトコルをフォローしていたのとは少し異なります。プロトコル定数については、CURLOPT_PROTOCOLS。 | cURL 7.19.4 で追加されました。 |
| CURLOPT_RESUME_FROM | 転送を再開する際にバイトオフセットを渡します(レジューム用)。 | |
| CURLOPT_SSL_VERIFYHOST | 1 サーバーのSSL証明書にコモンネーム(common name)が存在するかどうかを確認します。訳注:コモンネーム(Common Name)は一般に、SSL証明書を申請する予定のドメイン名(domain)またはサブドメイン名(sub domain)を入力するものです。2 コモンネームが存在するかどうか、および提供されたホスト名と一致するかどうかを確認します。 | |
| CURLOPT_SSLVERSION | 使用するSSLバージョン(2 または 3)。デフォルトではPHPがこの値を自動検出しますが、状況によっては手動で設定する必要があります。 | |
| CURLOPT_TIMECONDITION | もしCURLOPT_TIMEVALUEで指定されたある時間より後に編集された場合は、次を使用しますCURL_TIMECOND_IFMODSINCEページを返しますCURLOPT_HEADERが true の場合、"304 Not Modified"のヘッダーを返します。CURLOPT_HEADERが false の場合、CURL_TIMECOND_IFUNMODSINCEを使用し、デフォルト値はCURL_TIMECOND_IFUNMODSINCE。 | |
| CURLOPT_TIMEOUT | cURL の実行を許可する最大秒数を設定します。 | |
| CURLOPT_TIMEOUT_MS | cURL の実行を許可する最大ミリ秒数を設定します。 | cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用できます。 |
| CURLOPT_TIMEVALUE | 設定するCURLOPT_TIMECONDITION使用するタイムスタンプ。デフォルトでは、CURL_TIMECOND_IFMODSINCE。 |
以下のオプションのオプションパラメータでは、value に string 型の値を設定する必要があります:
| オプション | 任意value值 | 備考 |
|---|---|---|
| CURLOPT_CAINFO | サーバー認証に使用する1つ以上の証明書を保持するファイル名。このパラメータは、CURLOPT_SSL_VERIFYPEER一緒に使用した場合にのみ意味があります。 | |
| CURLOPT_CAPATH | 複数のCA証明書を保存するディレクトリ。このオプションは、CURLOPT_SSL_VERIFYPEER一緒に使用されます。 | |
| CURLOPT_COOKIE | HTTPリクエストの"Cookie: "部分の内容を設定します。複数のcookieはセミコロンで区切り、セミコロンの後にスペースを1つ入れます(例:fruit=apple; colour=red")。 | |
| CURLOPT_COOKIEFILE | cookieデータを含むファイル名。cookieファイルの形式はNetscape形式、または単にHTTPヘッダー情報をファイルに保存したものでもかまいません。 | |
| CURLOPT_COOKIEJAR | 接続終了後にcookie情報を保存するファイル。 | |
| CURLOPT_CUSTOMREQUEST | カスタムリクエストメッセージを使用して、"GET"或"HEAD"の代わりにHTTPリクエストとして使用します。これは、次の操作を実行するのに役立ちます:"DELETE"またはその他のより難解なHTTPリクエスト。有効な値は次のとおりです:"GET","POST","CONNECT"などです。つまり、ここにHTTPリクエスト全体を入力しないでください。例えば、"GET /index.html HTTP/1.0\r\n\r\n"は正しくありません。
|
|
| CURLOPT_EGDSOCKET | と同様ですが、CURLOPT_RANDOM_FILEEntropy Gathering Daemonソケットを使用する点が異なります。 | |
| CURLOPT_ENCODING | HTTPリクエストヘッダー内の"Accept-Encoding: "の値。サポートされているエンコーディングは次のとおりです:"identity","deflate"と"gzip"。空文字列の場合は、""、リクエストヘッダーはサポートされているすべてのエンコーディングタイプを送信します。 | cURL 7.10 で追加されました。 |
| CURLOPT_FTPPORT | この値は、FTPの"POST"コマンドに必要なIPアドレスを取得するために使用されます。"POST"コマンドは、リモートサーバーに指定したIPアドレスへの接続を指示します。この文字列は、プレーンテキストのIPアドレス、ホスト名、ネットワークインターフェース名(UNIXの場合)、またはデフォルトのIPアドレスを使用するための単なる'-'にすることができます。 | |
| CURLOPT_INTERFACE | ネットワーク送信インターフェース名。インターフェース名、IPアドレス、またはホスト名にすることができます。 | |
| CURLOPT_KRB4LEVEL | KRB4(Kerberos 4)セキュリティレベル。以下の値はすべて有効です(低い順から高い順):"clear"、"safe"、"confidential"、"private".。文字列がこれらのいずれとも一致しない場合は、"private"が使用されます。このオプションをNULLに設定すると、KRB4セキュリティ認証が無効になります。現在、KRB4セキュリティ認証はFTP転送でのみ使用できます。 | |
| CURLOPT_POSTFIELDS | すべてのデータはHTTPプロトコルの"POST"操作で送信されます。ファイルを送信するには、ファイル名の前に@プレフィックスを付け、完全なパスを使用します。このパラメータは、urlエンコードされた文字列(例:'para1=val1¶2=val2&...')または、フィールド名をキーとし、フィールドデータを値とする配列を使用して渡すことができます。value配列の場合、Content-Typeヘッダーは次のように設定されます:multipart/form-data。 | |
| CURLOPT_PROXY | HTTPプロキシトンネル。 | |
| CURLOPT_PROXYUSERPWD | プロキシへの接続に使用される"[username]:[password]"形式の文字列。 | |
| CURLOPT_RANDOM_FILE | SSL乱数シードを生成するために使用されるファイル名。 | |
| CURLOPT_RANGE | 以"X-Y"の形式。XとYはどちらもオプションで、取得するデータの範囲をバイト単位で指定します。HTTP転送スレッドは、このような項目をカンマで区切って複数指定することもできます。例:"X-Y,N-M"。 | |
| CURLOPT_REFERER | HTTPリクエストヘッダー内の"Referer: "の内容。 | |
| CURLOPT_SSL_CIPHER_LIST | SSL暗号化アルゴリズムのリスト。例:RC4-SHAとTLSv1はすべて利用可能な暗号リストです。 | |
| CURLOPT_SSLCERT | PEM形式の証明書を含むファイル名。 | |
| CURLOPT_SSLCERTPASSWD | 使用するCURLOPT_SSLCERT証明書に必要なパスワード。 | |
| CURLOPT_SSLCERTTYPE | 証明書のタイプ。サポートされている形式は次のとおりです:"PEM"(デフォルト値)、"DER"と"ENG"。 | cURL 7.9.3 で追加されました。 |
| CURLOPT_SSLENGINE | 使用されるCURLOPT_SSLKEY内で指定されたSSL秘密鍵の暗号化エンジン変数。 | |
| CURLOPT_SSLENGINE_DEFAULT | 非対称暗号化操作に使用される変数。 | |
| CURLOPT_SSLKEY | SSL秘密鍵を含むファイル名。 | |
| CURLOPT_SSLKEYPASSWD | にCURLOPT_SSLKEYで指定されたSSL秘密鍵のパスワード。
|
|
| CURLOPT_SSLKEYTYPE | CURLOPT_SSLKEYで規定された秘密鍵の暗号化タイプ。サポートされているキータイプは次のとおりです:"PEM"(デフォルト値)、"DER"と"ENG"。 | |
| CURLOPT_URL | 取得するURLアドレス。curl_init()関数内で設定します。 | |
| CURLOPT_USERAGENT | HTTPリクエストに"User-Agent: "ヘッダーを含む文字列。 | |
| CURLOPT_USERPWD | 接続に必要なユーザー名とパスワードを渡します。形式:"[username]:[password]"。 |
以下のオプションのオプションパラメータでは、value に配列を設定する必要があります:
| オプション | 任意value值 | 備考 |
|---|---|---|
| CURLOPT_HTTP200ALIASES | 200応答コードの配列。配列内の応答コードは正しい応答とみなされ、それ以外はエラーとみなされます。 | cURL 7.10.3 で追加されました。 |
| CURLOPT_HTTPHEADER | HTTPヘッダーフィールドを設定するための配列。次の形式の配列を使用して設定します: array('Content-type: text/plain', 'Content-length: 100') | |
| CURLOPT_POSTQUOTE | FTPリクエストの実行完了後にサーバー上で実行される一連のFTPコマンド。 | |
| CURLOPT_QUOTE | FTPリクエストの前にサーバー上で実行される一連のFTPコマンド。 |
以下のオプションのオプションパラメータでは、value にストリームリソース(例:fopen() を使用)を設定する必要があります:
| オプション | 任意value值 |
|---|---|
| CURLOPT_FILE | 出力ファイルの位置を設定します。値はリソースタイプで、デフォルトはSTDOUT(ブラウザ) です。 |
| CURLOPT_INFILE | ファイルをアップロードするときに読み取る必要があるファイルの場所。値はリソースタイプです。 |
| CURLOPT_STDERR | エラー出力先を設定します。値はリソースタイプで、デフォルトのSTDERR。 |
| CURLOPT_WRITEHEADER | ヘッダー部分の内容を書き込むファイルの場所を設定します。値はリソースタイプです。 |
以下のオプションのオプションパラメータでは、value にコールバック関数名を設定する必要があります:
| オプション | 任意value值 |
|---|---|
| CURLOPT_HEADERFUNCTION | コールバック関数を設定します。この関数には2つのパラメータがあります。最初のパラメータはcURLリソースハンドル、2番目のパラメータは出力されるヘッダーデータです。ヘッダーデータの出力はこの関数に依存する必要があります。書き込まれたデータサイズを返します。 |
| CURLOPT_PASSWDFUNCTION | コールバック関数を設定します。3つのパラメータがあります。最初はcURLリソースハンドル、2番目はパスワードプロンプト、3番目のパラメータはパスワードの長さとして許可される最大値です。パスワードの値を返します。 |
| CURLOPT_PROGRESSFUNCTION | コールバック関数を設定します。3つのパラメータがあります。最初はcURLリソースハンドル、2番目はファイルディスクリプタリソース、3番目は長さです。含まれるデータを返します。 |
| CURLOPT_READFUNCTION | コールバック関数名。この関数は3つの引数を受け入れる必要があります。1つ目は cURL リソース、2つ目はオプションを介してCURLOPT_INFILEcURL に渡されるストリームリソースです。3つ目の引数は読み取り可能な最大データ量です。コールバック関数は、要求されたデータ量(3つ目の引数)以下の長さの文字列を返す必要があります。通常は渡されたストリームリソースから読み取ります。空文字列を返すとEOF(ファイル終端)シグナルになります。 |
| CURLOPT_WRITEFUNCTION | コールバック関数名。この関数は2つの引数を受け入れる必要があります。1つ目は cURL リソース、2つ目は書き込むデータ文字列です。データは関数内で保存されなければなりません。関数は渡された書き込みデータの正確なバイト数を返す必要があります。そうしないと、転送はエラーによって中断されます。 |
戻り値
成功した場合は TRUE、失敗した場合は FALSE を返します。
更新履歴
| バージョン | 説明 |
|---|---|
| 5.2.10 | 導入CURLOPT_PROTOCOLS, and
CURLOPT_REDIR_PROTOCOLS.
|
| 5.1.0 | 導入CURLOPT_AUTOREFERER,
CURLOPT_BINARYTRANSFER,
CURLOPT_FTPSSLAUTH,
CURLOPT_PROXYAUTH, and
CURLOPT_TIMECONDITION.
|
| 5.0.0 | 導入CURLOPT_FTP_USE_EPRT,
CURLOPT_NOSIGNAL,
CURLOPT_UNRESTRICTED_AUTH,
CURLOPT_BUFFERSIZE,
CURLOPT_HTTPAUTH,
CURLOPT_PROXYPORT,
CURLOPT_PROXYTYPE,
CURLOPT_SSLCERTTYPE, and
CURLOPT_HTTP200ALIASES.
|
例
新しい cURL セッションを初期化し、Webページを取得する
<?php // 创建一个新cURL资源 $ch = curl_init(); // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, false); // 抓取URL并把它传递给浏览器 curl_exec($ch); //关闭cURL资源,并且释放系统资源 curl_close($ch); ?>
ファイルアップロードの例:
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
上記の例の出力結果は次のようになります:
Array
(
[name] => Foo
)
Array
(
[file] => Array
(
[name] => test.png
[type] => image/png
[tmp_name] => /tmp/phpcpjNeQ
[error] => 0
[size] => 279
)
)
注釈
CURLOPT_POSTFIELDS に配列を渡すと、cURL はデータを multipart/form-data としてエンコードします。一方、URLエンコードされた文字列を渡すと、データは application/x-www-form-urlencoded としてエンコードされます。
他の拡張機能