php读取mp3文件信息

来源:互联网 发布:idea java文件夹 蓝色 编辑:程序博客网 时间:2024/04/28 00:58
一个读取的程序。其实稍作改动,就可以变成读写的(id3v1),id3v2复杂的多,以后看情况再写吧。
  1. <?php
  2. $file="回到我身边.mp3"; //要读取的文件--俺偶像的
  3. $mp3info=readmp3($file); //获得文件信息,数组
  4. print_r($mp3info); //输出数组
  5. function readmp3($mp3_file)
  6. {
  7.     $fp=fopen($mp3_file,"rb"); //读取mp3文件
  8.     //首先判断是否有TAG,如果没有,那就没必要读取了,方法就是读取倒数128-126字节,看是否是TAG
  9.     //详情参看http://www.readlog.cn/archives/2961/
  10.     fseek($fp,-128,SEEK_END); //指针移到倒数128字节处
  11.     $tag=fread($fp,3); //读取倒数128-126字节位置的数据
  12.     if($tag=="TAG")  //如果这3个字节是TAG,表明有TAG
  13.      {
  14.         $mp3=array();
  15.         //标题30个字节,从倒数125字节到倒数96字节
  16.         //现在直接读就可以了
  17.         $mp3['标题']=fread($fp,30);
  18.         //艺术家30个字节,从倒数95字节到66字节
  19.         $mp3['艺术家']=fread($fp,30);
  20.         //专辑30个字节,从倒数65字节到36字节
  21.         $mp3['专辑']=fread($fp,30);
  22.         //年份4个字节,从倒数35字节到32字节
  23.         $mp3['年份']=fread($fp,4);
  24.         //注释28个字节,从倒数31字节到4字节 (有的是30个字节,那就把倒数第2,3位归入注释了)
  25.         $mp3['注释']=fread($fp,28);
  26.         fseek($fp,1,SEEK_CUR); //跳过倒数第3位保留位
  27.         //第几首1个字节,倒数第2位
  28.         $mp3['编号']=ord(fread($fp,1));
  29.         //流派1个字节,就是倒数第一个字节了
  30.         //流派这里是存放的整型数据,可以写个函数来把数字变成具体的文字。
  31.         //具体含义参看http://www.readlog.cn/archives/2961/
  32.         $mp3['流派']=ord(fread($fp,1));
  33.     return$mp3;
  34.      }
  35. }
  36. ?>
0 0