【PHP入門】cURL関数の使い方をマスターしよう!

PHPでHTTPリクエストによる外部サイトとの送受信処理を行うには、cURL関数を使用します。

この記事では、

・cURL関数とは?
・cURL関数の基本的な使い方
・GETメソッドとは?
・POSTメソッドとは?

という基本的な内容から、

・Cookieオプションの指定方法
・Proxyオプションの指定方法

などのcURL関数の応用的な使い方について解説します。

ここでは、cURL関数を使用してウェブサーバから情報を取得する処理について、詳しく解説していきます!

cURLとは

cURLとは、HTTPリクエストをすることにより、外部サイトの情報を取得することができる関数です。

HTTPリクエストとは、クライアントがウェブサーバへリクエスト内容を要求することを言います。

リクエストにより、ウェブサーバからレスポンスが返ってくることにより、ウェブサイトを表示することができます。

そのようなHTTPリクエストを実行できる関数がcURLとなります。

cURL関数は基本的に以下の方法で使用します。

・curl_init()
cURLのセッションを初期化し、返り値にcURLハンドルを返します。

・curl_setopt()
cURLの転送用オプションを設定します。返り値にはboolean型の値を返します。

・curl_exec()
cURLのセッションの実行時に使用します。この関数はセッションの初期化、オプション設定後に使用する必要があります。

・curl_close()
cURLのセッションを閉じるときに使用します。

cURLの基本的な使い方

ここでは実際にcURL関数の使い方を見ていきましょう。

前述したcurl_init、curl_setopt、curl_exec、curl_close関数をそれぞれ使って、指定したURLの情報を取得します。

このサンプルを実行すると、ブラウザに指定したウェブページが表示されます。

ChromeやSafariなどのウェブブラウザから右クリックで「ページのソースを表示」を選択すると、文字列で指定したURLの情報が取得されています。

また、cURL関数はhttpのほかにhttpsによるSSL/TSL認証にも対応しています。

GETメソッドとは

HTTPリクエストでウェブサーバにさまざまな要求を行うときに、GETメソッドは使用されます。

たとえば、HTMLファイルや画層、動画などのデータを取得するときによく使われます。

先程紹介したcURLの処理はGETメソッドによりWebサーバへアクセスしています。

POSTメソッドとは

POSTメソッドは、GETメソッド同様にウェブサーバに要求を行うときに使用します。

GETメソッドとの違いとしては、HTTPリクエストのbody要素にデータ内容を含み、テキストやバイナリのデータで送信することも可能です。

POSTメソッドは、以下のように指定します。

POSTメソッドを指定するにはcurl_setoptの第二引数で、CURLOPT_POSTをtrueで指定にすると、POSTが有効になります。

また、POSTで送信するデータは、オプションCURLOPT_POSTFIELDSと送信データを指定する必要があります。

Cookieオプションの指定方法

クッキー(Cookie)とは、ウェブサイトにアクセスしたときにユーザーの訪問回数やアクセス日時などの閲覧情報を保存することを言います。

cURLでは、オプションでサーバからのクッキーの情報取得することができます。

以下にクッキー情報を取得するサンプルを記述します。

クッキーの情報を取得するにはcurl_setoptメソッドのオプションにCURLOPT_COOKIEJARと、CURLOPT_COOKIEFILEを設定し、ファイル名を指定します

このサンプルを実行すると、指定したcookie.txtに以下のように取得したクッキーの情報が書き込まれています。

Proxyオプションの指定方法

プロキシ(Proxy)とは、代理の意味でクライアントとサーバの間に存在する中継サーバのことを言います。

中継サーバを使用することで、クライアントの変わりにウェブページにアクセスすることができます。

プロキシの詳細な説明については、以下のページで詳しく解説しています。
http://wa3.i-3-i.info/word1752.html

cURLでは、オプションでプロキシの設定が可能です。

cURLでプロキシ経由で接続するには、以下のように指定します。

まとめ

ここではPHPでHTTPリクエストを実行できるcURL関数の基本的な使い方や、

クッキー情報を取得したり、プロキシ経由で接続する方法などについて解説しました。

cURL関数は、ウェブサーバとHTTPリクエストによるやり取りを行うときに必須の機能ですので、仕組みはよく理解しておきましょう。

もしcURL関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

エラーばかりでプログラミング学習が進まない、と悩んでいませんか?

プログラミング学習を始めたけれど、エラーの原因がよく分からなかったり、調べてみたけれど解決されず「どうやって進めればいいんだろう」と放置してそのまま挫折しかけていませんか?

一度進め方が分からなくなるとやる気も失せてしまいますよね。

そんなあなたにオススメしたいのが、「侍エンジニア塾」の無料体験レッスンです。独学で1000時間以上の学習が必要と言われているところを300時間に短縮する「プログラミング独学法」をお伝えします。

下記の無料体験レッスン予約カレンダーよりお申し込みいただけます。あなたのご相談を心よりお待ちしております。

LINEで送る
Pocket

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説