Geen artiest geselecteerd.
"; return; } $artistEsc = mysqli_real_escape_string($db_conx, $artistName); $artistDisplay = stripslashes($artistName); $cacheDir = __DIR__ . '/../data/artist_cache/'; if(!is_dir($cacheDir)) mkdir($cacheDir, 0755, true); /* ---------------------------- FUNCTIES ---------------------------- */ function get_api_content($url, $token = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'X-FM-Website/1.0'); curl_setopt($ch, CURLOPT_TIMEOUT, 5); if ($token) curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Discogs token=$token"]); $resp = curl_exec($ch); curl_close($ch); return json_decode($resp, true); } /* ---------------------------- DATA OPHALEN ---------------------------- */ // 1. Discogs Basis (Zoeken voor ID en Cover) $searchData = get_api_content("https://api.discogs.com/database/search?q=" . urlencode($artistDisplay) . "&type=artist", $discogsToken); $discogsId = $searchData['results'][0]['id'] ?? null; $finalImg = $searchData['results'][0]['cover_image'] ?? 'assets/img/noimglrg.jpg'; // 2. Diepe Discogs Details & Releases $artistDetails = null; $releases = []; if ($discogsId) { $artistDetails = get_api_content("https://api.discogs.com/artists/" . $discogsId, $discogsToken); $relData = get_api_content("https://api.discogs.com/artists/" . $discogsId . "/releases?sort=year&sort_order=desc&per_page=8", $discogsToken); $releases = $relData['releases'] ?? []; } // 3. Last.fm Artist Info (Bio & Tags) $lfmData = get_api_content("https://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=" . urlencode($artistDisplay) . "&api_key=$lastfmKey&format=json"); $fullBio = $lfmData['artist']['bio']['content'] ?? 'Geen biografie gevonden.'; $cleanBio = explode('

LISTENERS
SCROBBLES
Wereldwijde Hits
luisteraars
Het Verhaal
In onze database
0): $dbCount=1; ?>
# Titel Duur Aanvragen
REQUEST
Geen tracks gevonden in de database.
Discografie
Cover
()