解説(4)RESTリクエストのレスポンス処理

商品検索PHPプログラムのサンプルコード(serch.php)解説。
ヤフーショッピングのAPIサーバーに、RESTリクエストを作って投げて
レスポンスを受ける部分です。

 

// ---------------- 商品検索スタート ------------------------ //

 

// APIへのリクエストURL生成
$api_url = $API_BASE_URL.$OPERATION."?appid=".$DEVELOPER_ID
."&query=".$key."&hits=".$max_num."&sort=".$ysort."&availability=1";

//echo $api_url;

 

 

ヤフーショッピングのwebサービスを使うために、リクエストURLを作ります。
連結するには「.」と言う記号を使います。また固定値は「""」で囲みます。
&availability=1は、入手可能の商品に限るという指定です。

 

//APIからのレスポンスを取得(file_get_contents関数)
$contents = file_get_contents($api_url);

 

file_get_contents関数は、ファイルの中身をそのまま変数に格納する関数です。
テキストファイルなら何でも格納できるので色々便利です。

 

//XMLファイルを分解(simplexml_load_string関数)
$xml = simplexml_load_string($contents);

//print_r($xml);

 




 

レスポンスはXML形式で戻ってきますので、
simplexml_load_string関数で配列化して変数$xml に格納します。

 

print_r($xml)の「//」を消して$xmlの中身を表示させると
こういう感じになっています。(表示されるスタイルはブラウザによって異なります)
print_r()関数は、配列の中身を表示するときに良く使う関数です。
simplexml_load_string関数

 

totalResultsAvailableのところの「58110」と言う数字が、
URLリクエストでヒットした商品数と言うことになります。

 

//検索件数が0件でない場合,変数$hitsに検索結果を格納します
if ($xml["totalResultsReturned"] != 0) {
$hits = $xml->Result->Hit;

 

商品情報は、このレスポンスではHit以下の階層にあるので、
Hit以下を新しい変数$hitsに入れ直します。

 

※PHPの場合は変数の定義をせずに、いきなり変数に値を入れることができます。

広告


Twitter
Facebook
LINE
はてな
ポケット



売れてます

★稼げるアフィリエイター専用SEO分析ツール「COMPASS」

大幅バージョンアップ完了!アフィリサイト作成システムSIRIUS

★SEOに強い戦略的テンプレート「賢威7」

アフィリエイト教材 最新人気ランキング