【PHP】 cURL 関数を使って外部サイトから情報を取得する方法を解説!

cURL 関数は、phpで外部のサイトにアクセスして様々な情報を取ってくる事ができ、HTTPリクエストを行うためのライブラリです。
HTTPリクエストをすることにより、外部サイトの情報を取得することができる関数は、 cURL 関数の他にfile_get_contentsがありますが、ヘッダーを変えたりするなど、カスタマイズができません。

そういったカ外部のサイトにアクセスする際のスタマイズができるcURL関数をわかりやすく解説していきます

cURLとは

cURLとは、いろいろな通信プロトコルを用いてデータを転送するライブラリやコマンドを提供するプロジェクトになります。cURLは、Client for URLsからきています。

この cURLを利用することで、いろいろなサービスが提供している情報を収集することができます。
cURL image

情報を取得するには以前にも紹介しましたfile_get_contents関数があります。しかし、今回のcURL()関数はリクエスト方法をカスタマイズしたい時にとても便利な関数となります。

cURL関数の書き方

cURL関数の書き方は以下のようになります。

curl関数は「_」の後ろに関数名を指定することでその関数が実行されます。
例えば、curl関数にはこのような関数があります。

curl_copy_handle — cURLハンドルとそのすべての設定をコピーする
curl_errno —最後のエラー番号を返す
curl_error —現在のセッションの最後のエラーを含む文字列を返す
curl_escape — URLは指定された文字列をエンコードします
curl_multi_strerror —エラーコードを説明する文字列を返す
curl_pause —接続を一時停止および一時停止解除する
curl_reset — libcurlセッションハンドルのすべてのオプションをリセットする

cURL関数の基本的な使い方

cURL関数の基本的な使い方としては、ホームページを取得をする際に使われます。
ホームページを取得を取得するにはcurl_init() 、curl_setopt() 、curl_exec() 、curl_close() の関数を使用します。一つずつ解説していきましょう。

curl_init()

curl_init()関数とはcURLセッションを初期化します。

パラメータは以下のようになります。
$取得するurl : 取得したいURLを設定する。

返り値は成功すれば、cURLハンドルを返しますが、失敗するとfalseを返し、取得するURLで情報の取得先を指定します

curl_setopt()

curl_setopt()関数とはcURL転送のオプションを設定します。

パラメータは以下のようになります。
$cURLのハンドル : curl_init()の返り値を設定する。
$オプション: 設定するオプション名を指定する。
$値: オプションに設定する値。

返り値は成功でtrueを返し、失敗でfalseを返します。

curl_exec()

curl_close()関数とはcURLセッションを実行します。

パラメータは以下のようになります。
$cURLのハンドル: curl_init()によって返されるcURLハンドル 。

返り値は成功でtrue、失敗でfalseを返します。

curl_close()

curl_close()関数とはcURLセッションを終了する関数になります。

パラメータは以下のようになります。
$cURLのハンドル: curl_init()によって返されるcURLハンドル

返り値はありません。

それでは、フライテックのホームページを取得してみます。するとこのようなコードになります。

出力結果

<!DOCTYPE html><html lang=”ja”><head><meta charset=”UTF-8″> <!–[if IE]><meta http-equiv=”X-UA-Compatible” content=”IE=edge”><![endif]–><meta name=”viewport” content=”width=device-width”><title> フライテック | フリーランスエンジニアの案件・求人</title><meta name=”description” content=

このようにホームページの情報を取得することができます。

変数に保存する方法(オプション)

変数に保存する方法はcurl_setopt()のオプションにCURLOPT_RETURNTRANSFERを追記します

ヘッダを出力する方法(オプション)

ヘッダを出力する方法はcurl_setopt()のオプションにCURLOPT_HEADERを追記します。

POST送信する方法

POST送信するにはcurl_setopt()のオプションにCURLOPT_POSTを追記します。

Cookieオプションを指定する方法

Cookieオプションを指定するにはcurl_setopt()のオプションにCURLOPT_COOKIEJAR

リクエストヘッダーを付加する方法

リクエストヘッダーを付加するにはcurl_setopt()のオプションにCURLINFO_HEADER_OUTを指定します。

公式マニュアル

今回解説したcURL関数の基本的な部分を紹介しましたが、それ以外にもたくさんあります。
CURl関数の公式マニュアルがありますので、詳しく知りたい方は是非こちらをご参考ください。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し