读取部分:

PHP代码
  1. $filename = "srkl.mp3";  
  2. $fp = fopen($filename"rb"or die("Unable to open this mp3.");  
  3. fseek($fp,-128,SEEK_END);  
  4.   
  5. $header = fread($fp,3); // Header[3]  
  6. if (‘TAG’!=$headerdie("Unknown Header Information:".$header);  
  7.   
  8. $title = trim(fread($fp,30)); // Title[30]  
  9. $artist = trim(fread($fp,30)); // Artist[30]  
  10. $album = trim(fread($fp,30));   // Album[30]  
  11. $year = fread($fp,4);   // Year[4]  
  12. $comment = trim(fread($fp,28)); // Comment[28]  
  13.   
  14. fseek($fp,1,SEEK_CUR);  // reserve  
  15.   
  16. $track = ord(fread($fp,1)); // Track[1]  
  17. $genre = ord(fread($fp,1)); //Genre[1]  
  18. fclose($fp);  
  19.   
  20.   
  21. echo " 
  22. Title:$title 
  23. Artist:$artist 
  24. Album:$album 
  25. Year:$year 
  26. Comment:$comment 
  27. Track:$track 
  28. Genre:$genre 
  29. ";  

写入:

PHP代码
  1. ////////////////////////////////  
  2. $title = "生日快乐";  
  3. $artist = "小S";  
  4. $album = "旅程";  
  5. $year = "2006";  
  6. $comment = "这是我的第一个专辑哦!";  
  7.   
  8. //fseek($fp,1,SEEK_CUR);    // reserve  
  9.   
  10. $track = "1";  
  11. $genre = "4";  
  12.   
  13. // 规定字节,不足用\0补  
  14. $title = str_padsubstr($title,0,30) ,30,chr(0));  
  15. $artist = str_padsubstr($artist,0,30) ,30,chr(0));  
  16. $album = str_padsubstr($album,0,30) ,30,chr(0));  
  17. $year = str_padsubstr($year,0,4) ,4,chr(0));  
  18. $comment = str_padsubstr($comment,0,28) ,28,chr(0));  
  19. $track = chr(intval($track));  
  20. $genre = chr(intval($genre));  
  21.   
  22. //  
  23. $mp3 = substr(file_get_contents("srkl.mp3"),0,filesize(‘srkl.mp3′)-128);  
  24. $fp = fopen("1.mp3","wb"or die("Unable open.");  
  25. fwrite($fp,$mp3);  
  26. fwrite($fp,"TAG");  
  27. fwrite($fp,$title);  
  28. fwrite($fp,$artist);  
  29. fwrite($fp,$album);  
  30. fwrite($fp,$year);  
  31. fwrite($fp,$comment);  
  32. fseek($fp,1,SEEK_CUR);  
  33. fwrite($fp,$track);  
  34. fwrite($fp,$genre);  
  35. fclose($fp);  

参考资料:
(来自CSDN)
关于Mp3文件的ID3v1标签的格式错误地方指正!首先非常感谢原作者,给我非常大的帮助,有误的地方我给予指正,望这能表达出我是对原作者的一些感谢! 
    原文地址: 
  http://dev.csdn.net/develop/article/14/14798.shtm 
  
    ID3V1比较简单,它是存放在MP3文件的末尾,用16进制的编辑器打开一个MP3文件,查看其末尾的128个顺序存放字节,数据结构定义如下: 
      char   Header[3];         /*标签头必须是”TAG”否则认为没有标签*/ 
    char   Title[30];         /*标题*/ 
    char   Artist[30];       /*作者*/ 
    char   Album[30];         /*专集*/ 
    char   Year[4];         /*出品年代*/ 
    char   Comment[30];       /*备注*/ 
    char   Genre;         /*类型*/ 
      ID3V1的各项信息都是顺序存放,没有任何标识将其分开,比如标题信息不足30个字节,则使用’\0’补足,否则将造成信息错误。 
  
  
  
  结构应该是: 
  char   Header[3];         /*标签头必须是”TAG”否则认为没有标签*/ 
  char   Title[30];         /*标题*/ 
  char   Artist[30];       /*作者*/ 
  char   Album[30];         /*专集*/ 
  char   Year[4];         /*出品年代*/ 
  char   Comment[29];       /*备注*/ 
  byte   track;       /*音轨*/ 
  byte   Genre;         /*类型*/ 
  
  以上仅是个人看法,有误之处,还请指正!