file_get_contentsを使う方法とscurlを使う方法があります。
curlの基本的な流れ
- curl_init()ー初期化
- curl_setopt()ー設定
- curl_exec()ー実行
- 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に比べて、ヘッダやタイムアウト制御などの設定が簡単なのが利点です。
来るべき案件に対して、両方ともできるようにしておきましょう。
にほんブログ村
コメント