PHPで楽天ジャンル一覧を取得する

投稿者:

楽天ジャンル取得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)

Thank you for reading this post, don't forget to subscribe!