Soyez le premier à donner votre avis sur cette source.
Snippet vu 14 853 fois - Téléchargée 28 fois
<? function ReadTag($path) { $genre_array = array("Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge", "Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B", "Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska", "Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient", "Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical", "Instrumental","Acid","House","Game","Sound Clip","Gospel", "Noise","AlternRock","Bass","Soul","Punk","Space","Meditative", "Instrumental Pop","Instrumental Rock","Ethnic","Gothic", "Darkwave","Techno-Industrial","Electronic","Pop-Folk", "Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta", "Top 40","Christian Rap","Pop/Funk","Jungle","Native American", "Cabaret","New Wave","Psychadelic","Rave","Showtunes","Trailer", "Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro", "Musical","Rock & Roll","Hard Rock","Folk","Folk-Rock", "National Folk","Swing","Fast Fusion","Bebob","Latin","Revival", "Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock", "Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band", "Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson", "Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus", "Porn Groove","Satire","Slow Jam","Club","Tango","Samba", "Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle", "Duet","Punk Rock","Drum Solo","Acapella","Euro-House","Dance Hall"); $file=fopen($path, "rb"); if($file) { fseek($file, 0, SEEK_END); fseek($file, -128, SEEK_CUR); $tag=fread($file, 128); fclose($file); } else { return 0; } if ($tag[0]=='T' && $tag[1]=='A' && $tag[2]=='G') { $title=substr($tag,3,30); $artist=substr($tag,33,30); $album=substr($tag,63,30); $year=substr($tag,93,4); $comment=substr($tag,97,30); $type=ord(substr($tag,127,1)); if($type >= 0 && $type <= 125) $genre = $genre_array[$type]; else $genre = "none"; if (ord($comment[28]) == 0 && ord($comment[29]) != 0) { $track = ord($comment[29]); $comment[29] = "\0"; } else { $track = 0; } return sprintf("%s-%s-%s-%s-%s-%s-%s",$title, $artist, $album, $year, $comment, $genre, $track); } else { return 0; } } /*Exemple d'utilisation*/ $path = "Test.mp3"; $tag = ReadTag($path); if($path == 0) print("Lecture du tag impossible"); else { list($title, $artist, $album, $year, $comment, $genre, $track) = explode ("-", $tag); print($title); print("<br>"); print($artist); print("<br>"); print($album); print("<br>"); print($year); print("<br>"); print($comment); print("<br>"); print($genre); print("<br>"); print($track); print("<br>"); } ?>
Ligne 82: $path est testé à la place de $tag
Ligne 82: Chez moi j'ai un "Lecture du tag impossible" quoi que renvoi ReadTag(), je pense que c'est dut à la comparaison entre une chaine et un entier
Ligne 87: explode() va poser un problème si jamais le caractère - (tiret) est présent dans une des variables, d'autant que ce caractère est présent dans le nom des genres défini ligne 5.
Résolution de ces problèmes:
Remplacer la ligne 82 par if(!$tag)
Remplacer le premier argument du sprintf() ligne 69 par "%sù£µ%sù£µ%sù£µ%sù£µ%sù£µ%sù£µ%s"
Remplacer le premier argument du explode() ligne 87 par "ù£µ"
Normalement ça devrait passer et ne poser de problème que si "ù£µ" est présent sur une info du tag ID3, je doute fortement qu'il existe ne serait-ce qu'un fichier au monde posant ce problème
Problème secondaire:
Voici l'artiste que me sort ce code avec mon fichier test, vous comprendrez le soucis: Stupeflip?????????????????????
ou alors, tu peux aller voir cette source :
http://www.phpcs.com/code.aspx?ID=25736
pite pub ;)
if($path == 0) print("Lecture du tag impossible"); else...
c'est pas $path qui doit être utilisé, un type chaîne, mais $tag
if ( fseek( $file, -128L, SEEK_END ) != 0)
{
print ("Erreur en positionnant le pointeur de fichier");
return 0;
}
Bye
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.