Help us understand the problem. What is going on with this article?

PHPでのcurl使用方法をメモ

More than 1 year has passed since last update.

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

4roro4
29歳未経験からわずか1ヶ月でプログラマーに転職。その後1年5ヶ月の実務経験を経てフリーランスとして独立。元ジャズミュージシャン。 MENTAでプログラミングのサポート始めました〜 https://menta.work/plan/936
https://pro-web-engineer.com/
engineerlife
技術力をベースに人生を謳歌する人たちのコミュニティです。
https://community.camp-fire.jp/projects/view/280040
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした