apple.com 의 음악 최신 차트 100곡을 RSS 를 이용하면 나만의 음악 정보 사이트를 구축할 수 있습니다. 실시간으로 말이죠.

나라별, 장르별로 음악 정보를 출력하고 싶다면 아래 코드 중 키 값을 넘겨주기만 하면 됩니다. 예를 들어 '한국'의 '애니메이션'을 출력하고 싶다면 국가 코드를 대문자로 설정하고, 장르는 숫자 값을 입력하면 원하는 값을 얻을 수 있습니다.


<?php

$str = api_itunes_Entry('KR', 29);
print_r($str);


전체 코드는 아래와 같습니다.


<?php

function api_itunes_Call( $country_id = 'US', $genre_id = '' )
{
  if(!empty($genre_id))
  {
    $genre_id = '/genre=' . $genre_id;
  }
  $url = 'https://itunes.apple.com/'.$country_id.'/rss/topsongs/limit=100'.$genre_id.'/xml';

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_HEADER, 0);

  $content = curl_exec($ch);
  curl_close($ch);

  // Remove the colon ":" in the <xxx:yyy> to be <xxxyyy>
  $content = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $content);
  $xml = simplexml_load_string($content);
  $data = json_encode($xml);

  return json_decode($data, true);
}

// 국가
function api_itunes_Countries( $country = null )
{
  $countries = array
  (
    'US' => '미국',
    'AR' => '아르헨티나',
    'AU' => '호주',
    'AT' => '오스트리아',
    'BE' => '벨기에',
    'BR' => '브라질',
    'CA' => '캐나다',
    'CL' => '칠레',
    'CO' => '콜롬비아',
    'CR' => '코스타리카',
    'HR' => '크로아티아',
    'CZ' => '체코 공화국',
    'DK' => '덴마크',
    'SV' => '엘살바도르',
    'FI' => '핀란드',
    'FR' => '프랑스',
    'DE' => '독일',
    'GR' => '그리스',
    'GT' => '과테말라',
    'HK' => '홍콩',
    'HU' => '헝가리',
    'IN' => '인도',
    'ID' => '인도네시아',
    'IE' => '아일랜드',
    'IL' => '이스라엘',
    'IT' => '이탈리아',
    'JP' => '일본',
    'KR' => '한국',
    'KW' => '쿠웨이트',
    'LB' => '레바논',
    'LU' => '룩셈부르크',
    'MY' => '말레이시아',
    'MX' => '멕시코',
    'NL' => '네덜란드',
    'NZ' => '뉴질랜드',
    'NO' => '노르웨이',
    'PK' => '파키스탄',
    'PA' => '파나마',
    'PE' => '페루',
    'PH' => '필리핀',
    'PL' => '폴란드',
    'PT' => '포르투갈',
    'QA' => '카타르',
    'RO' => '루마니아',
    'RU' => '러시아',
    'SA' => '사우디아라비아',
    'SG' => '싱가포르',
    'SK' => '슬로바키아',
    'SI' => '슬로베니아',
    'ZA' => '남아프리카 공화국',
    'ES' => '스페인',
    'LK' => '스리랑카',
    'SE' => '스웨덴',
    'CH' => '스위스',
    'TW' => '대만',
    'TH' => '태국',
    'TR' => '터키',
    'GB' => '영국',
    'AE' => '아랍에미리트',
    'VE' => '베네수엘라',
    'VN' => '베트남'
  );
  $country = strtoupper(htmlentities($country));
  if(!empty($country))
  {
    return $countries[$country];
  }

  return $countries;
}

// 장르
function api_itunes_Genres( $genr = null )
{
  $genres = array
  (
    "0" => "모든 장르",
    "20" => "얼터너티브",
    "29" => "애니메이션",
    "2" => "블루스",
    "1122" => "브라질",
    "4" => "어린이 음악",
    "1232" => "중국 음악",
    "22" => "기독교 복음",
    "5" => "클래식",
    "3" => "코미디",
    "6" => "국가",
    "17" => "댄스",
    "50000063" => "디즈니",
    "25" => "이지 리스닝",
    "7" => "일렉트로닉 뮤직",
    "28" => "엔카",
    "50" => "피트니스 운동",
    "50000064" => "프렌치 팝",
    "50000068" => "독일 민속",
    "50000066" => "독일 팝",
    "18" => "힙합 랩",
    "8" => "홀리데이",
    "1262" => "인도",
    "53" => "인스트루멘탈",
    "27" => "제이팝",
    "11" => "재즈",
    "51" => "케이팝",
    "52" => "가라오케",
    "30" => "일본 가요",
    "1243" => "한국 음악",
    "12" => "라티노",
    "13" => "뉴 에이지",
    "9" => "오페라",
    "14" => "팝",
    "15" => "알앤비 소울",
    "24" => "레게",
    "21" => "락",
    "10" => "싱어송 라이터",
    "16" => "사운드 트랙",
    "50000061" => "스포큰 워드",
    "23" => "보컬",
    "19" => "월드"
  );

  $genr = htmlentities($genr);
  if(!empty($genr))
  {
    return $genres[$genr];
  }

  return $genres;
}

// 목록
function api_itunes_Entry( $country = '', $genres = '', $count = 1, $max = 101 )
{
  $raw = api_itunes_Call($country, $genres);

  $nlist = array();
  foreach($raw['entry'] as $val)
  {
    if($count < $max)
    {
      $nlist[] = array(
        'cover' => $val['imimage'][2],
        'tiny_img' => $val['imimage'][0],
        'title' => $val['imname'],
        'name' => $val['imartist'],
        'label' => $val['category']['@attributes']['label'],
        'published' => $val['imreleaseDate']
      );
    }
    $count++;
  }

  return $nlist;
}


0 댓글