【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関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

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

おすすめコンテンツ

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

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