php读取mp3文件信息 (转)

一个读取的程序。其实稍作改动,就可以变成读写的(id3v1),id3v2复杂的多,以后看情况再写吧。 <?php $file=”回到我身边.mp3″; //要读取的文件–俺偶像的 $mp3info=readmp3($file); //获得文件信息,数组 print_r($mp3info); //输出数组 function readmp3($mp3_file) { $fp=fopen($mp3_file,”rb”); //读取mp3文件 //首先判断是否有TAG,如果没有,那就没必要读取了,方法就是读取倒数128-126字节,看是否是TAG //详情参看http://www.readlog.cn/archives/2961/ fseek($fp,-128,SEEK_END); //指针移到倒数128字节处 $tag=fread($fp,3); //读取倒数128-126字节位置的数据 if($tag==”TAG”) //如果这3个字节是TAG,表明有TAG { $mp3=array(); //标题30个字节,从倒数125字节到倒数96字节 //现在直接读就可以了 $mp3[‘标题’]=fread($fp,30); //艺术家30个字节,从倒数95字节到66字节 $mp3[‘艺术家’]=fread($fp,30); //专辑30个字节,从倒数65字节到36字节 $mp3[‘专辑’]=fread($fp,30); //年份4个字节,从倒数35字节到32字节 $mp3[‘年份’]=fread($fp,4); //注释28个字节,从倒数31字节到4字节 (有的是30个字节,那就把倒数第2,3位归入注释了) $mp3[‘注释’]=fread($fp,28); fseek($fp,1,SEEK_CUR); //跳过倒数第3位保留位 //第几首1个字节,倒数第2位 $mp3[‘编号’]=ord(fread($fp,1)); //流派1个字节,就是倒数第一个字节了 //流派这里是存放的整型数据,可以写个函数来把数字变成具体的文字。 //具体含义参看http://www.readlog.cn/archives/2961/ $mp3[‘流派’]=ord(fread($fp,1)); return $mp3; } } ?>