I'm writing a script that goes through a folder and gets all the ID3 tags for all the MP3 files in that folder. This is my code:
<?php
$dir = TEMPLATEPATH . "/flash/music/";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($fileread = readdir($dh)) !== false) {
if($fileread == "." || $fileread == ".." || $fileread == "index.php" )
continue;
$fullpath = $dir . $fileread;
$musicfile = fopen($fullpath, 'r');
fseek($musicfile, -128, SEEK_END);
$tag = fread($musicfile, 3);
if($tag == "TAG")
{
$data["song"] = trim(fread($musicfile, 30));
$data["artist"] = trim(fread($musicfile, 30));
$data["album"] = trim(fread($musicfile, 30));
}
else
{
echo "MP3 file does not have any ID3 tag!";
}
fclose($musicfile);
while(list($key, $value) = each($data))
{
print("$key: $value<br>\r\n");
}
}
}
}
?>
but its not quite working right. It's returning this:
MP3 file does not have any ID3 tag!
Warning: Variable passed to each() is not an array or object in /[my_server_path]/public_html/new/wp-content/themes/default/functions.php on line 1053
song: X&Y
artist: Coldplay
album: X&Y
So oddly enough it only retrieves the second song's id3 data.
Any ideas?
Thanks.