phpでのcurl使用方法は決まり文句みたいなものなのでメモ。
// リクエストヘッダー 設定
$headers = array(
"Content-Type: application/json",
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'tmp');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
$output = curl_exec($curl);
curl_close($curl);
大まかな流れととしては、こちら。
//curlセッション初期化。urlも設定
curl_init($url);
//curlオプション設定
curl_setopt();
//curl実行
curl_exec();
//curlセッション終了
curl_close();
#いろいろなオプション設定
curl_setoptでいろいろとオプションがつけられる。
よく使用するものだけメモ。
###CURLOPT_CUSTOMREQUEST
メソッド名指定。GETのときは不要。
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
###CURLOPT_RETURNTRANSFER
curl_exec()を実行時、返り値を文字列で返す。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
###CURLOPT_HTTPHEADER
ヘッダー設定
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
###CURLOPT_SSL_VERIFYPEER
falseを設定するとサーバー証明書の検証を行わない。
オレオレ証明書対策(自分で証明した証明書)
これを設定することでcurl_exec()を実行時、エラーを回避できる。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
###CURLOPT_SSL_VERIFYHOST
こちらもCURLOPT_SSL_VERIFYPEER同様にfalseにする必要がある
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
###CURLOPT_COOKIEJAR
接続終了時にすべてのcookieを保存するファイル名
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie');
###CURLOPT_COOKIEFILE
クッキーのデータを保持するファイル名
PHPのcurlからCookieを扱うには、CURLOPT_COOKIEJAR、CURLOPT_COOKIEFILEの両方を宣言する必要あり?
curl_setopt($curl, CURLOPT_COOKIEFILE, 'tmp');
###CURLOPT_FOLLOWLOCATION
ヘッダーにLocationがあれば、再帰的にたどる。
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
cURLではHTTPステータスコードが300系などで既に移転してしまったサイトなどは
リクエストのヘッダにLocationがあればリダイレクトしてたどっていく機能がある。
引用:http://mio-koduki.blogspot.com/2012/08/phpcurl-curl_23.html