送信先URLは「http://www.example.com/」、送信する値は「arg1=val1&arg2=val2」である場合の事例を以下に示す。
<?php # cURLセッションを初期化 $ch = curl_init(); ## cURL転送オプションを設定 # 取得するURL curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); # この値は以下のようにcURLセッション初期化時に指定することもできます # $ch = curl_init("http://www.example.com/"); # メソッドにPOSTを指定 curl_setopt($ch, CURLOPT_POST, true); # HTTP HEADERを指定 curl_setopt($ch, CURLOPT_HEADER, array('Content-Type: multipart/form-data')); # 送信値をセット ※値をURLエンコードした文字列で指定する場合はこちら curl_setopt($ch, CURLOPT_POSTFIELDS, array('arg1'=>'val1','arg2'=>'val2')); # cURL実行 curl_exec($ch); # cURLセッションを閉じる curl_close($ch);
送信先URLは「http://www.example.com/」、送信する値は「arg1=val1&arg2=val2」である場合の事例を以下に示す。
<?php # cURLセッションを初期化 $ch = curl_init(); ## cURL転送オプションを設定 # 取得するURL curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); # この値は以下のようにcURLセッション初期化時に指定することもできる # $ch = curl_init("http://www.example.com/"); # メソッドにPOSTを指定 curl_setopt($ch, CURLOPT_POST, true); # HTTP HEADERを指定 curl_setopt($ch, CURLOPT_HEADER, array('Content-Type: multipart/form-data')); # 送信値をセット ※値を配列で指定する場合はこちら curl_setopt($ch, CURLOPT_POSTFIELDS, "arg1=val1&arg2=val2')); # cURL実行 curl_exec($ch); # cURLセッションを閉じる curl_close($ch); >
<?php # cURLセッションを初期化 $ch = curl_init(); # POST先URLを指定 curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); # この値は以下のようにcURLセッション初期化時に指定することもできる # $ch = curl_init("http://www.example.com/"); # CURLFileクラスのオブジェクトを作成 $cfile = new CURLFile('test.jpg','image/jpeg','testfilename'); # メソッドをPOSTにセット curl_setopt($ch, CURLOPT_POST,true); # HTTP HEADERにContent-Typeをセット curl_setopt($ch, CURLOPT_HEADER, array('Content-Type: multipart/form-data')); # データをセット curl_setopt($ch, CURLOPT_POSTFIELDS,array('testfile'=>$cfile)); # cURL実行 curl_exec($ch); # cURLセッションを閉じる curl_close($ch);
PHPの変数値を一旦ファイルに出力することなく直接ファイルとして送信する方法。 このとき使うCURLStringFileクラスはPHP 8.1.0以降で利用可能。
<?php # cURLセッションを初期化 $ch = curl_init(); # POST先URLを指定 curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); # この値は以下のようにcURLセッション初期化時に指定することもできる # $ch = curl_init("http://www.example.com/"); # CURLStringFileクラスのオブジェクトを作成 $cfile = new CURLStringFile($testtext,'testfilename','application/octet-stream',); # メソッドをPOSTにセット curl_setopt($ch, CURLOPT_POST,true); # HTTP HEADERにContent-Typeをセット curl_setopt($ch, CURLOPT_HEADER, array('Content-Type: multipart/form-data')); # データをセット curl_setopt($ch, CURLOPT_POSTFIELDS,array('testfile'=>$cfile)); # cURL実行 curl_exec($ch); # cURLセッションを閉じる curl_close($ch);
curl_close[1_1]は、cURLセッションを閉じてリソースを開放する。cURLハンドルも削除される。
【書式】
curl_close(cURLハンドル);
引数
戻り値
なし
curl_exec[1_2]は、cURLセッションを実行する。実行に先立ち、curl_initによるセッションの初期化とcurl_setoptによるオプション設定を済ませておく必要がある。
【書式】
curl_exec(cURLハンドル);
引数
戻り値
例:cURLセッション$chを実行
curl_exec($ch);
curl_init[1_3]は、cURLセッションを開始するにあたって最初に必要となる初期化を行ってcURLハンドルを返す。
【書式】
curl_init(URL);
引数
戻り値
例
例1:cURLセッションを初期化するだけ
curl_init();
例2:cURLセッションを初期化し、アクセス先URLとして「http://www.example.com/」を設定
curl_init("http://www.example.com/");
curl_setopt[1_4]は、cURL転送を行う際の各種指定を行う。
【書式】 curl_setopt(cURLハンドル,オプション,値);
引数
[文字列]取得するURL。
curl_initでcURLセッションを初期化するときに指定することもできる。
例:アクセス先URLとして「http://www.example.com/」を設定
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
[論理値]値にtrueを設定するとPOSTのHTTPメソッドを使って通信を行う。POSTはapplication/x-www-form-urlencodedのContent-Typeを使う。Formを使ってPOST形式でデータを送信する操作に相当する。実際に送る値はCURLOPT_POSTFIELDSのオプションで指定する。
例:POSTのHTTPメソッドを使って通信を行うよう設定する
curl_setopt($ch, CURLOPT_POST, true);
[文字列 または 配列]HTTP POSTメソッドで送信するデータを指定する。値はURLエンコードされた「arg1=val1&arg2=val2&...」のような文字列形式(application/x-www-form-urlencoded)で渡すことも、フィールド名をキー、データを値とした配列(multipart/form-data)で渡すこともできる。配列で渡す場合、 Content-Type ヘッダに multipart/form-data を設定する。このオプションでデータを送る前にCURLOPT_POSTオプションでPOSTメソッドにより通信するよう設定しておく必要がある。
例1:「arg1=val1&arg2=val2」を送信する値として設定する(URLエンコードされた文字列で指定)
curl_setopt($ch, CURLOPT_POSTFIELDS, "arg1=val1&arg2=val2");
例2:「arg1=val1&arg2=val2」を送信する値として設定する(配列で指定)
curl_setopt($ch, CURLOPT_POSTFIELDS, array('arg1'=>'val1','arg2'=>'val2'));
[配列]設定するHTTPヘッダフィールドを配列で指定する。
例1:コンテンツタイプが「multipart/form-data」であることを伝える設定をする
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));