Pred čítaním tohto mini howto by ste mali niečo vedieť o funkciách stránok ako
last.fm alebo
audioscrobbler. Ide o projekt ktorý za pomoci Vášho prehrávača respektíve pluginu v nom zaznamenáva názvy piesní ktoré počúvate a následne ich spracováva. Pod pojmom spracováva si predstavte tvorbu štatistík, týždenných, mesačných, atd. Následne kalkuluje Váš hudobný vkus s Vašimi priateľmi, selektuje vaše obľúbené skupiny, atd. Na vysvetlenie by bolo treba najmenej další článok, alebo to skúsiť na vlastnej koži. Môžete začať práve na www.last.fm.
Ja sa teraz vrátim k hlavnému problému. Ako dostať piesne práve prehraté na Vašom počítači na Vašu stránku za pomoci audioscrobbler.net . Pred tým než začnem by ste sa mali uistiť v pár PHP nastaveniach. Stačí ak bude PHP skompilované s XML podporou a bude možné čítať externé XML súbory, budeme totiž využívať SimpleXML funkcie.
Prvý krok je dostať zoznam skladieb z Vášho pc, najjednoduchšia cesta je prenechať to projektu audioscrobbler. Za pomoci stránky last.fm sa dostanete k xml súboru s názvami a informáciami o Vašich práve prehratých piesnach.
Vo vašom last.fm profile zvolíte Feeds > XML. Odkáže Vás to na súbor
http://ws.audioscrobbler.com/1.0/user/vase_meno/recenttracks.xml
A tento súbor následne načítame za pomoci simplexml_load_file a prevedieme pár jednoduchých výpočtov.
$xml = simplexml_load_file("http://ws.audioscrobbler.com/1.0/user/vase_meno/recenttracks.xml");
$now=false;
foreach($xml->track as $track) {
$unixtime=date("U");
$unixtime_of_song=$track->date[uts];
$dif=$unixtime-$unixtime_of_song;
$date=round($dif/60);
if ($date<=6 && $now==false){
$now=true;
$date='prave pocuvam';
}elseif($date>60 && $date&1440){
$hod=floor($date/60);
$min=$date-$hod*60;
$date ='pred '.$hod.' hod';
if ($min!=0){
$date=$date.' a '.$min.' min';
}
}elseif($date>1440){
$date = $track->date;
}else{
$date='pred '.($date+2).' minutami';
}
$music[]=array(name=>htmlspecialchars($track->name,ENT_QUOTES),artist=>htmlspecialchars($track->artist,ENT_QUOTES),date=>htmlspecialchars($date,ENT_QUOTES));
}
if (empty($music)){
$music='!!! V poslednej dobe nebola na mojom pc prehravana hudba - moj hudobny profil !!!';
}
Tento script som vytvoril aby nahral moje prehrávané skladby do poľa $music, je to oveľa výhodnejšie ako ich rovno vypisovať, môžete ich takto lepšie využiť za pomoci template systému ako je napríklad
Smarty. Obsah si môžete samozrejme overiť funkciou
print_r($music);
A neskôr jednodcho vypísať z poľa. Naštýlovanie tabuľky napríklad za pomoci CSS je už úpne na Vás. V Každom kóde je čo vylepšovať, obzvlášť v tých mojich, ak budete mať teda nejaký nápad na update alebo nájdete nejakú chybu budem rád ak ma kontaktujete.