LoginSignup
48
45

More than 3 years have passed since last update.

PHPでのcurl使用方法をメモ

Last updated at Posted at 2019-06-24

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

48
45
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
45