49
45

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

49
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
49
45

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?