解説(5)商品情報をXMLから取り出す

商品検索PHPプログラムのサンプルコード(serch.php)解説。

 

 

 

ヤフーショッピングのAPIサーバーにリクエストを投げると、
レスポンスはXML形式で戻ってきますので、それを
simplexml_load_string関数で配列化して変数$xml に格納します。

 

 

 

//検索件数が0件でない場合,変数$hitsに検索結果を格納します。

 

 

if ($xml["totalResultsReturned"] != 0) {
$hits = $xml->Result->Hit;

 

XMLのヘッダーは不要なので商品情報のディレクトリ($Hit)まで配列をカットします。

 

 

これを変数$hitsに格納し、print_r($hits);
で中身を表示させるとこんな感じになります。

 

 

 

★レスポンスの商品情報配列の一例
アフィリエイト,phpスクリプト,WebAPI,儲け方,

 

この配列から利用する情報だけ取り出して、商品情報配列$list_yを作ります
このファイルをテンプレート・エンジンのスマーティに後で渡します。

 

 

 

// 分解したデータを順番に配列($list_y)に格納
unset($list_y);

$i = 0;

ここは変数の中身をリセットしている記述です。

 

あまり意味はありません。

 

 

 

foreach($hits as $hit){
配列$hits から1要素ずつ取り出して、変数$hitに代入していきます。

 

 

 

$list_y[$i]['title'] = mb_strimwidth ($hit->Name,0,50, "", "UTF-8");

商品タイトルを取得してUTF-8にエンコードして、さらに文字数を調整しています。

 

 

商品タイトルはこのレスポンスでは、2番目の階層の
「Name」というキーに対応しているのでて、$hit->Nameとすれば値が取り出せます。

 

 

mb_strimwidth関数は、文字数を丸めるための関数で、ここでは50文字に丸めています。

 




 

$list_y[$i]['Description'] = mb_strimwidth ($hit->Description, 0,300, "", "UTF-8")."・・";

これは商品の説明を300字で取り出している記述です。

 

$hit->Descriptionで取り出せます。

 

 

文字数は表示するページのスペースに合わせて変えます。

 

$list_y[$i]['url'] = $hit->Url;

$list_y[$i]['img'] = $hit->Image->Medium;

$list_y[$i]['price'] = $hit->Price;

商品サイトのURLや商品画像、価格情報などを取り出しています。

 

$list_y[$i]['reviewAverage'] = $hit->Review->Rate;

$list_y[$i]['reviewCount'] = $hit->Review->Count;

$list_y[$i]['reviewURL'] = $hit->Review->Url;

レビュー情報などを取り出しています。

 

$i++;

}
次の商品情報の処理に進んで、最後まで言ったらこの処理が終わります。

 

 

 

//print_r($list_y);

 

}else{//検索結果が0のとき
print("検索条件に合う結果は、見つかりませんでした。

 

");

}
ここでは、検索結果が0だったときに表示する文言を設定しています。

広告


Twitter
Facebook
LINE
はてな
ポケット



売れてます

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

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

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

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