Also mein Problem ist folgendes: Habe mir ein kleines Scrip geschrieben mit dem ich den ID3-Tag aller mp3 in einem Verzeichnis ausliest. Nun ist folgendes das Script findet alle Dateien doch später bei der Ausgabe der ID3-Tag Informationen werden nur die Informationen des letzten Titels ausgegeben.
Woran liegt das?
Vielen Dank schon mal, Olli
Woran liegt das?
PHP:
<?php
////// verzeichnis auslesen
function read_recursiv($path) //Beginn Funktion in Klammern wird die Variable für den übergeben Wert festgelegt.
{
$result = array(); //Resultat in ein Array schreiben
$handle = opendir($path); //Ordner "Lieder" öffnen
if ($handle) //Prüfen ob Variable $handle nicht leer ist
{
while (false !== ($file = readdir($handle))) //While schleife für jedes einzelne Element im Ordner
{
if ($file != "." && $file != ".." ) //Wenn Dateiname ungleich "." oder ".." ist
{
$name = $path . "/" . $file; //Name erstellen aus pfad und dateiname
if (is_dir($name)) //Wenn der Name ein Ordner ist dann die Funktion nochmals aufrufen
{
$ar = read_recursiv($name); //Resultat wird in Array "$ar" geschrieben
foreach ($ar as $value) //Schleiffe um das Array auszulesen
{
$result[] = $value; //Aktuelle Schleife in $result speichern
}
}
else //Wenn kein Ordner dann
{
$ext = strtolower(substr($name, strrpos($name,'.')+1)); //Dateiendung filtern
if($ext=="mp3"){ //nur Endung: mp3 zulassen
$result[] = $name; //Name in $result speichern
}
}
}
}
}
closedir($handle); //Ordner schliessen
return $result; //$result als Rückgabewert der Funktion
}
$data = read_recursiv("E:\Eigene_Dateien\mp3");
echo "<b>" . count($data) . "Dateien gefunden</b><br>\n";
// Ausgelesen Dateien an Funktion übergeben
foreach($data as $value)
{
echo $value."<br>";
$files = id3($value);
}
print_r($files);
// ID3Tag auslesen
$genre = array(0 => "Blues", 1 => "Classic Rock", 2 => "Country", 3 => "Dance", 4 => "Disco", 5 => "Funk",
6 => "Grunge", 7 => "Hip-Hop", 8 => "Jazz", 9 => "Metal", 10 => "New Age",
11 => "Oldies", 12 => "Other", 13 => "Pop", 14 => "R&B", 15 => "Rap",
16 => "Reggae", 17 => "Rock", 18 => "Techno", 19 => "Industrial", 20 => "Alternative",
21 => "Ska", 22 => "Death Metal", 23 => "Pranks", 24 => "Soundtrack", 25 => "Euro-Techno",
26 => "Ambient", 27 => "Trip-Hop", 28 => "Vocal", 29 => "Jazz+Funk", 30 => "Fusion",
31 => "Trance", 32 => "Classical", 33 => "Instrumental", 34 => "Acid", 35 => "House",
36 => "Game", 37 => "Sound Clip", 38 => "Gospel", 39 => "Noise", 40 => "Alternative Rock",
41 => "Bass", 42 => "Soul", 43 => "Punk", 44 => "Space", 45 => "Meditative",
46 => "Instrumental Pop", 47 => "Instrumental Rock", 48 => "Ethnic", 49 => "Gothic", 50 => "Darkwave",
51 => "Techno-Industrial", 52 => "Electronic", 53 => "Pop-Folk", 54 => "Eurodance", 55 => "Dream",
56 => "Southern Rock", 57 => "Comedy", 58 => "Cult", 59 => "Gangsta", 60 => "Top 40",
61 => "Christian Rap", 62 => "Pop/Funk", 63 => "Jungle", 64 => "Native American", 65 => "Cabaret",
66 => "New wave", 67 => "Psychadelic", 68 => "Rave", 69 => "Showtunes", 70 => "Trailer",
71 => "Lo-Fi", 72 => "Tribal", 73 => "Acid Punk", 74 => "Acid Jazz", 75 => "Polka",
80 => "Folk", 81 => "Folk-Rock", 82 => "National Folk", 83 => "Swing", 84 => "Fast Fusion", 85 => "Bebob",
86 => "Latin", 87 => "Revival", 88 => "Celtic", 89 => "Bluegrass", 90 => "Avantgarde",
91 => "Gothic Rock", 92 => "Progressive Rock", 93 => "Psychedelic Rock", 94 => "Symphonic Rock", 95 => "Slow Rock",
96 => "Big Band", 97 => "Chorus", 98 => "Easy Listening", 99 => "Acoustic", 100 => "Humour",
101 => "Speech", 102 => "Chanson", 103 => "Opera", 104 => "Chamber Music", 105 => "Sonata",
106 => "Symphony", 107 => "Booty Bass", 108 => "Primus", 109 => "Porn Groove", 110 => "Satire",
111 => "Slow Jam", 112 => "Club", 113 => "Tango", 114 => "Samba", 115 => "Folklore",
116 => "Ballad", 117 => "Power Ballad", 118 => "Rhythmic Soul", 119 => "Free Style", 120 => "Duet",
121 => "Punk Rock", 123 => "A capella", 124 => "Euro-House", 125 => "Dance Hall");
//ID3-Tag auslesen
function id3($filename)
{
global $genre;
if (!is_file($filename) or filesize($filename) < 128)
{
return false;
break;
}
$fp = fopen($filename, "r");
fseek($fp, filesize($filename) - 128);
$id3 = fread($fp, 128);
$arr = array();
if (strtoupper(substr($id3, 0, 3)) == "TAG")
{
$arr["song"] = trim(substr($id3, 3, 30));
$arr["artist"] = trim(substr($id3, 33, 30));
$arr["album"] = trim(substr($id3, 63, 30));
$arr["year"] = trim(substr($id3, 93, 4));
$arr["comment"] = trim(substr($id3, 97, 30));
$arr["genre"] = $genre[ord($id3[127])];
return $arr;
}
else
return false;
fclose($fp);
}
?>
Vielen Dank schon mal, Olli