2010年1月30日 星期六

[編碼] PHP對於mp3 tags的擷取與編碼問題

 今天突然想要整理音樂檔案,但是許多音樂檔都雜亂無章的亂放,無意間看到許多音樂檔其實都是有歌手這項資訊。一個一個檔案分別去細分,在時間上是不可能的,因此,就試著透過PHP來處理。



MP3檔案裡除了多媒體資料外,還有附加的資訊,結構大致如左圖。
















 Google了一下關於PHP語言處理ID3的方法,第一個連結就提供了getID3這個套件。
關於這個套件的描述...
getID3() is a PHP script that extracts useful information from MP3s & other multimedia file formats


打開套件,裡頭有幾個資料夾,直覺選擇demo這個資料夾。裡頭有多個demo script,選用demo.audioinfo.class.php這個檔案來玩。
















該檔案是個class,額外寫了引用該class的測試程式(如下圖),試著取出mp3檔案的ID3資訊...
 





 雖然正確的讀取資訊,但是很遺憾的...開啟中文就爆炸了 XD
















經過半天的嚕小...最後終於搞定編碼(環境:Windows XP  SP3)。參考了mp3 ID3的編碼格式以及前人的探討。原來ID3v1只支援 ISO-8859-1 編碼。














加入轉換編碼程式之後,最後終於得到正確的結果。



















今天(2010-02-15)終於整理完電腦裡所有音樂檔,總量達到200G!




[ 參考資料 ]
> PHP getID3 
> What's ID3(v1)
> 對 mp3 亂碼問題的分析和解決

沒有留言: