function parse_mp3($file_name) {
$info_struct = array (
"song_name" => array(3, 33, 'trim'),
"artist_name" => array(33, 63, 'trim'),
"album_name" => array(63, 93, 'trim'),
"year" => array(93, 97, 'trim'),
"comment" => array(97, 126, 'trim'),
"genre" => array(127, 128, 'genre_name')
);
$fp = fopen($file_name, "rb") or die("cannot open file!");
fseek($fp, -128, SEEK_END);
$mp3_info = array();
$tag = fread($fp, 3);
if ($tag == 'TAG') {
//fseek($fp, -125, SEEK_END);
foreach ($info_struct as $key => $arr) {
fseek($fp, $arr[0] - 128, SEEK_END);
$mp3_info[$key] = call_user_func($arr[2], fread($fp, $arr[1] - $arr[0]));
}
}
fclose($fp);
return $mp3_info;
}
//file genre name accoding by genre number;
function genre_name($genre) {
$genre = ord($genre);
$genre_arr = array (
'8' => 'Jazz',
'10' => 'New Age ',
'11' => 'Oldies ',
'12' => 'Other',
'13' => 'Pop',
'14' => 'R&B',
'15' => 'Rap',
'16' => 'Reggae',
'17' => 'Rock'
);
if (array_key_exists($genre, $genre_arr)) {
return $genre_arr[$genre];
}
else {
return "Unknow";
}