流れ
curl_init
でセッションハンドルを得る- ハンドルを使って
curl_setopt
やcurl_execute
などを実行する curl_close
でセッションを閉じる
基本形
curl_initでURLを指定する例
curl_init
実行時に引数にURLを与え、そのターゲットに対して実行する例。実行結果は上述と同じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php // アクセス先URLセット $url = 'http://www.httpbin.org'; // cURLセッション初期化 $handle = curl_init($url); // アクセス、レスポンス受信 curl_exec($handle); // cURLセッション終了 curl_close($handle); |
実行後、コンソールにサーバーから送られてきたレスポンスが表示される。
1 2 3 4 5 6 7 8 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>httpbin.org</title> ........ |
curl_setoptでURLを指定する例
curl_init
を引数なしで実行後、curl_setopt
でURLを指定する例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php // アクセス先URLセット $url = 'http://www.httpbin.org'; // cURLセッション初期化 $handle = curl_init(); // オプション設定 // URL指定 curl_setopt($handle, CURLOPT_URL, $url); // アクセス、レスポンス受信 curl_exec($handle); // cURLセッション終了 curl_close($handle); |
ヘッダーも取得
curl_setopt
でCURLOPT_HEADER
をtrue
に設定すると、レスポンスでヘッダーも取得できる。
1 2 3 4 5 |
// オプション設定 // URL指定 curl_setopt($handle, CURLOPT_URL, $url); // ヘッダーも出力 curl_setopt($handle, CURLOPT_HEADER, true); |
実行結果にヘッダーが含まれている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
HTTP/1.1 200 OK Date: Fri, 24 Jun 2022 00:37:50 GMT Content-Type: text/html; charset=utf-8 Content-Length: 9593 Connection: keep-alive Server: gunicorn/19.9.0 Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> |
レスポンスを文字列として受け取る
デフォルトではリクエストに対するレスポンスはコンソールに出力される。
curl_setopt
でCURLOPT_RETURNTRANSFER
をtrue
に設定すると、curl_exec
の戻り値としてレスポンスの文字列が返される。このとき画面には出力されない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php // アクセス先URLセット $url = 'http://www.httpbin.org'; // cURLセッション初期化 $handle = curl_init($url); // オプション設定 // レスポンスを文字列として取得 curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); // アクセス、レスポンスを変数に格納 $response = curl_exec($handle); // レスポンス表示 echo $response . PHP_EOL; // cURLセッション終了 curl_close($handle); |
POST
- フォームパラメーターを連想配列で設定する
curl_setopt
でCURLOPT_POST
をtrue
に設定して、POSTメソッドを指定するcurl_setopt
でCURLOPT_POSTFIELDS
とフォームパラメーターの連想配列を指定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php // アクセス先URLセット $url = 'http://www.httpbin.org/post'; // フォームパラメーターをセット $data =[]; $data['name'] = 'tau'; $data['site'] = 'taustation.com'; // cURLセッション初期化 $handle = curl_init($url); // オプション設定 // POSTメソッド curl_setopt($handle, CURLOPT_POST, true); // パラメーターをセット curl_setopt($handle, CURLOPT_POSTFIELDS, $data); // アクセス、レスポンス受信 curl_exec($handle); // cURLセッション終了 curl_close($handle); |
フォームパラメーターがセットされている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "args": {}, "data": "", "files": {}, "form": { "name": "tau", "site": "taustation.com" }, "headers": { "Accept": "*/*", "Content-Length": "249", "Content-Type": "multipart/form-data; boundary=----------------------------b6f1a4c4ebbb", "Host": "www.httpbin.org", "X-Amzn-Trace-Id": "Root=1-62b77075-1adc5c2c2bdf2ee32a04b6c7" }, "json": null, "origin": "106.155.0.13", "url": "http://www.httpbin.org/post" } |