一个读取的程序。其实稍作改动,就可以变成读写的(
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;
- }
- }
- ?>