curl

その他のサービス

目次一覧

 状態:-  閲覧数:2,277  投稿日:2019-02-04  更新日:2019-09-04  
curl

PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信

curl_getinfo ( resource $ch [, int $opt ] )

curl で Cookie を使用する


PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信

 閲覧数:647 投稿日:2019-02-04 更新日:2019-02-05 

PHPでcurlを使用するためには?


基本的な curl の使用法
1.セッション初期化
2.オプション設定
3.転送実行
4.セッション終了

1.セッション初期化
・curl_init()により cURL セッションを初期化
$ch = curl_init("http://www.example.com/");


2.オプション設定
・curl_setopt() により転送時のオプションを設定
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);


3.転送実行
・curl_exec() により転送を実行
curl_exec($ch);


4.セッション終了
・curl_close() によりセッションを終了
curl_close($ch);


2.オプション設定


CURLOPT_RETURNTRANSFER
・curl_exec() の実行結果である返り値を、「文字列で返す」か「データ出力する」か
・デフォルトではデータを直接出力する
・true指定すると、実行結果を文字列で返す
※curl_exec()の実行結果(返り値)を取得する場合は、必ず設定する

CURLOPT_POST TRUE
・HTTP POST を行う
・POST は、 application/x-www-form-urlencoded 形式で 行われる
・これは一般的な HTML のフォームと同じ形式

curlでPOST送信


1.セッション初期化
・curl_init()により cURL セッションを初期化
curl_init ([ string $url = NULL ] ) : resource
define('TOKEN_URI', 'https://connect.stripe.com/oauth/token');
$req = curl_init(TOKEN_URI);


2.オプション設定
・curl_setopt() により転送時のオプションを設定
curl_setopt ( resource $ch , int $option , mixed $value ) : bool
define('STRIPE_SECRET', 'sk_test_☆☆');//API
define('CLIENT_ID', 'ca_◆◆');//connectの設置ページにある
define('AUTHORIZE_URI', 'https://connect.stripe.com/oauth/authorize');
$code = $_GET['code'];
$token_request_body = array(
 'client_secret' => STRIPE_SECRET,
 'grant_type' => 'authorization_code',
 'client_id' => CLIENT_ID,
 'code' => $code,
);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($token_request_body));


3.転送実行
・curl_exec() により転送を実行

4.セッション終了
・curl_close() によりセッションを終了


cURL 関数

curl_getinfo ( resource $ch [, int $opt ] )

 閲覧数:582 投稿日:2019-02-05 更新日:2019-02-05 

curl_getinfo ( resource $ch [, int $opt ] )


指定した伝送に関する情報を得る

CURLINFO_RESPONSE_CODE
・直近のレスポンスコード

CURLINFO_HTTP_CODE
・最後に受け取った HTTP コード
・PHP 5.5.0とcURL 7.10.8以降では CURLINFO_RESPONSE_CODE の別名

使用例
//1.セッション初期化
define('TOKEN_URI', 'https://connect.stripe.com/oauth/token');
$ch = curl_init(TOKEN_URI);

//2.オプション設定
define('STRIPE_SECRET', 'sk_test_☆☆');//API
define('CLIENT_ID', 'ca_◆◆');//connectの設置ページにある
define('AUTHORIZE_URI', 'https://connect.stripe.com/oauth/authorize');
$code = $_GET['code'];
$token_request_body = array(
 'client_secret' => STRIPE_SECRET,
 'grant_type' => 'authorization_code',
 'client_id' => CLIENT_ID,
 'code' => $code,
);
curl_setopt_array($ch, [
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_POST => true,
   CURLOPT_POSTFIELDS => http_build_query($token_request_body),
]);
$respCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

//3.転送実行
$resp = json_decode(curl_exec($ch), true);

//4.セッション終了
curl_close($ch);


未解決
・「返り値が」int(0)となる理由
CURLINFO_HTTP_CODE と CURLINFO_RESPONSE_CODE の違い
期待した結果を取得できるが、 返り値のHTTP コードがint(0)となる理由は?
WebAPIを叩く(curl)

curl で Cookie を使用する

 閲覧数:2,517 投稿日:2019-09-04 更新日:2019-09-04 

Cookie に関するcurlオプションは全部で4種類ある


CURLOPT_COOKIESESSION
ブラウザーを閉じた状態をシミュレートするためのオプション
・このオプションを設定すると、有効期限のないCookie(セッションCookie)は送信されなくなる
※COOKIEFILEにセッションCookie(有効期限のないCookie)が含まれている場合、通常、ファイルに存在するセッションCookieは、アクセスする度にブラウザからサーバーへ送信される

CURLOPT_COOKIE
・サーバーに未加工形式で送信するCookieデータを設定する
・ファイルに書き込みたくない場合、あるいは、

CURLOPT_COOKIEFILE
Cookie情報をファイルへ書込

CURLOPT_COOKIEJAR
Cookie情報をファイルから読込

一覧表
オプション value への設定値 備考
CURLOPT_COOKIESESSION TRUE を設定すると、クッキーの "セッション" を新しく開始します。 以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、 libcurl に指示します。デフォルトでは、それがセッションクッキーであるか どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。 セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ 有効であるクッキーのことです。 -
CURLOPT_COOKIE HTTP リクエストにおける "Cookie: " ヘッダの内容。 クッキーが複数ある場合は、セミコロンとスペースで区切られる (例 "fruit=apple; colour=red") ことに注意しましょう。 -
CURLOPT_COOKIEFILE クッキーのデータを保持するファイルの名前。クッキーファイルは、 Netscape フォーマットあるいは HTTP ヘッダを単純にファイルにダンプしたものが使用可能です。 名前が空文字列の場合はクッキーを読み込みませんが、クッキーの処理は有効なままです。 Cookie 情報を読み込むファイルを指定
CURLOPT_COOKIEJAR ハンドルを閉じる際 (curl_close のコール後など) に、 すべての内部クッキーを保存するファイルの名前。 (URL から取得した)Cookie情報を保存する(書き込む)ファイル名を指定
cookies and sessions

curl
CURLOPT_COOKIEJAR

PHP公式Link
curl_setopt
curl_setopt_array

Cookie に関するcurlオプション使用例Link


「CURLOPT_COOKIE」使用例
is there a way to emulate a cookie instead of saving it to a file?
how to maintain session in cURL in php?

「CURLOPT_COOKIEJAR」使用例
Why php curl does not save cookie in my cookiefile?

「CURLOPT_COOKIEJAR」「CURLOPT_COOKIEFILE」使用例
PHPプロ!TIPS+
cURLでクッキーを送受信する
PHPのcURLでcookieを保持
PHPのcurlでCookieを使う時はどうしたらよいか実験
php curlを使って、cookieを使ったURLの結果を取得する
cURL関数で3つのハードルを乗り越えて投稿する
curlに関して
PHPスクリプトからcURLを使ってCookieのやり取りをするサンプル


コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 curl 100
2 include 55
3 include require 42
4 Propel 40
5 parse_url( ) 38
6 include_path 38
7 array_reduce 38
8 blurImageメソッド 35
9 foreach文 33
10 Doctrine 33
11 realpath 33
12 http_build_query 30
13 var_dump() 29
14 array_walk 29
15 preg_match 29
16 SessionHandler::gc 27
17 new clone違い 27
18 for文 25
19 array_filter 25
20 SHA-1(Secure Hash Algorithm 1) 24
2025/8/13 12:44 更新
週間人気ページランキング / 8-6 → 8-12
順位 ページタイトル抜粋 アクセス数
1 定数 4
1 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 4
2 PHP用語 3
2 「POSIX正規表現」と「PCRE正規表現」の違い 3
2 結合時の評価と優先順位 | 演算子 3
2 PHPで定数を定義する方法は2種類ある / 配列定数の定義 3
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 3
3 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
3 コード例 … 「例外処理」はネストすることができる 2
3 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2
3 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
3 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 2
3 curl で Cookie を使用する 2
3 ( ! ) Warning: Declaration of xxxx should be compatible with | エラーメッセージ 2
3 http_build_query | URLs(関数) 2
3 and | 演算子 2
3 Cookie | クッキー 2
4 Warning: PDO::query(): LOAD DATA LOCAL INFILE forbidden | Warning(エラーメッセージ) 1
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 1
4 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined | Fatal error(エラーメッセージ) 1
2025/8/13 1:01 更新