楽天ジャンル取得APIを使ってPHPで楽天のジャンル一覧を取得してみます。
require_once “XML/Unserializer.php”;
getData(0);
// ジャンルデータ取得&解析
function getData( $id ){
$url = ‘http://api.rakuten.co.jp/rws/2.0/rest?developerId=[楽天API dev id]&operation=GenreSearch&version=2007-04-11&genreId=’.$id;
$options = array( ‘complexType’ => ‘array’ );
$xmldoc = join(“”,file($url));
$Unserializer =& new XML_Unserializer($options);
$Unserializer->setOption(‘parseAttributes’, true);
$status = $Unserializer->unserialize($xmldoc);
$data = $Unserializer->getUnserializedData();
if(is_array($data[‘Body’][‘genreSearch:GenreSearch’][‘child’] )){
foreach($data[‘Body’][‘genreSearch:GenreSearch’][‘child’] as $k=>$v){
//print_r($v);
switch ($v[‘genreLevel’]) {
case 1:
break;
case 2:
echo “ └”;
break;
case 3:
echo “ └”;
break;
case 4:
echo “ └”;
break;
case 5:
echo “ └”;
break;
default:
break;
}
//echo mb_convert_encoding($v[‘genreName’] , ‘SJIS’, auto) .”(” . $v[‘genreId’] .”)\n”;
echo $v[‘genreName’] .”(” . $v[‘genreId’] .”)\n”;
// ジャンルIDを引数として自分自身を呼び出す
if($v[‘genreId’]){
getData($v[‘genreId’]);
}
}
}
}
こんな風に階層で表示されればOK
CD・DVD・楽器(101240)
└DVD(101354)
└洋画(101355)
└ファミリー(101364)
└サスペンス・ミステリー(101365)
└ラブストーリー(101366)
└ヒューマン(101368)
└SF(101369)
└戦争(101359)
└アクション(101361)
└西部劇(101362)
└コメディー(101363)
└ホラー(101360)
└名画・クラシック(101358)
└ヨーロッパ(101357)
└青春(507984)
└スポーツ(507985)
└ファンタジー(507986)
└ギャング・マフィア(507987)
└法廷ドラマ(507988)
└ミュージカル(507989)
└史劇(507990)
└ヒーロー(507991)
└動物(507992)
└ドキュメンタリー(507993)
└バラエティー(507994)
└その他(101951)
└アジア(400007)
└ファミリー(400008)
└サスペンス・ミステリー(400009)
└ラブストーリー(400010)
└ヒューマン(400011)