一気に最後まで | もしもAPIをphpで使ってみる

一気に最後まで

また、間があいてすみません。
でも、もうほとんど完成なので、一気にいきます。

前回ので、自サイトで扱っている商品は、$contentsに入っていきましたが、
自分のサイトにない商品も、ランキングの数を補うために後ろに追加します。

この場合は、リンク先は、もしもの販売ページになります。
自サイトの時と同じように、{item_ranking}以外を、置き換えて、$othersという配列に一時保管しておきます。

$max_rankまで足りない分を$othersから取り出して、順位をいれて、$contentsに追加してランキングの完成です。

print <<< EOS より後ろの部分がランキングを表示するhtmlです。今回は、思いっきり他の部分を省いていますが、まわりをそれなりにかざれば、立派なランキングになります。

index.phpは、以下のようになりました。

<?php
mb_regex_encoding("UTF-8");
mb_internal_encoding("UTF-8");

require_once('config.php');
require_once('urllist.php');
require_once('getmoshiapi.php');

$p = 0;
$maxnum = 100;
$s = "sales";
$others = array();

if(($ArticleSearch = getmoshi_tag($authorization_code, $tag, $p, $maxnum, $s)) !== FALSE){
$ranking = 1;
$contents = "";
foreach ($ArticleSearch->Articles->Article as $Article) {
$pid = (int)$Article->ArticleId;
if(isset($arr_pageurl[$pid])){
$file = file_get_contents("entry.html");
$file = str_replace("{item_link}",$arr_pageurl[$pid] ,$file);
$file = str_replace("{item_ranking}",$ranking,$file);
$file = str_replace("{item_name}",$Article->Name,$file);
$image = "http://image.moshimo.com/item_image/$Article->ImageCode/1/r.jpg";
$file=str_replace("{item_image}",$image ,$file);
$ShopPrice = isset($Article->ShopPrice) ? $Article->ShopPrice : $Article->RecommendedPrice;
$price = number_format((float)$ShopPrice);
$file=str_replace("{item_price}",$price,$file);
$contents .= $file;
$ranking++;
if($ranking > $max_rank){ break;}
} else {
$file = file_get_contents("entry.html");
$file = str_replace("{item_link}","http://www.moshimo.com/article/${shop_id}/$Article->ArticleId/" ,$file);
$file = str_replace("{item_name}",$Article->Name,$file);
$image = "http://image.moshimo.com/item_image/$Article->ImageCode/1/r.jpg";
$file=str_replace("{item_image}",$image ,$file);
$ShopPrice = isset($Article->ShopPrice) ? $Article->ShopPrice : $Article->RecommendedPrice;
$price = number_format((float)$ShopPrice);
$file=str_replace("{item_price}",$price,$file);
$others[] = $file;
}
}

for( ;$ranking <= $max_rank; $ranking++){
$file = array_shift($others);
$file = str_replace("{item_ranking}",$ranking,$file);
$contents .= $file;
}
} else {
$contents = "準備中";
}

print <<< EOS
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<body>
<table>
$contents
</table>
</body>
</html>
EOS;
?>


ペタしてね