curlを使って、データを呼び出す方法【PHP】

a man standing in front of a tall building 未分類

file_get_contentsを使う方法とscurlを使う方法があります。

curlの基本的な流れ

  1. curl_init()ー初期化
  2. curl_setopt()ー設定
  3. curl_exec()ー実行
  4. curl_close()ー終了させる(クローズ)

また、1.で使うcurlハンドルは、2.3.4.で使用するためです。

GETの実例

名古屋市に本店を置く、「三洋堂書店」のデータを取得してみます。

<?php


$url = "https://www.books-sanseido.co.jp/";

$ch = curl_init();

$options = array(
	CURLOPT_URL => $url,
	CURLOPT_RETURNTRANSFER => true
);

curl_setopt_array($ch, $options);

$response = curl_exec($ch);

echo $response;

curl_close($ch);

?>

実行すると三洋堂書店公式のトップページが表示されます。

POSTの実例

JSON形式のデータを使用しPOSTでHTTPリクエストを行うサンプルです。

同じく三洋堂書店のデータを取得します。

<?php


$url = "https://sanyodo.co.jp/";

$post_fields= array(
	"tilte" => "example"
);

$headers = array(
	"Authorization: Bearer access_token",
	"Content-type: application/json"
);

$ch = curl_init();

$options = array(
	CURLOPT_URL => $url,
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_HTTPHEADER => $headers,
	CURLOPT_POST => true,
	CURLOPT_POSTFIELDS => json_encode($post_fields)
);

curl_setopt_array($ch, $options);

$response = curl_exec($ch);

curl_close($ch);


?>

zipcloudでの実例

今回は、郵便番号検索で有名なzipcloudで郵便番号に紐づくデータを呼び出します。

<?php

$zipcode = "476-0011";
$url = "https://zipcloud.ibsnet.co.jp/api/search?zipcode=".$zipcode;

$ch = curl_init();

$options= array(
	CURLOPT_URL => $url,
	CURLOPT_RETURNTRANSFER => true
);
curl_setopt_array($ch, $options);

$response = curl_exec($ch);

echo "<pre>";
print_r($response);
echo "</pre>";

curl_close($ch);


?>

実行結果は以下になります。

{
	"message": null,
	"results": [
		{
			"address1": "愛知県",
			"address2": "東海市",
			"address3": "富木島町",
			"kana1": "アイチケン",
			"kana2": "トウカイシ",
			"kana3": "フキシママチ",
			"prefcode": "23",
			"zipcode": "4760011"
		}
	],
	"status": 200
}

ステイタス200なので正常にデータを取得できました。

curlとfile_get_contentsとの違い

curlはfileget_contentsに比べて、ヘッダやタイムアウト制御などの設定が簡単なのが利点です。

来るべき案件に対して、両方ともできるようにしておきましょう。

にほんブログ村 IT技術ブログへ
にほんブログ村

コメント

タイトルとURLをコピーしました