用PHP读取文件的一部分
问题描述:
我想读取MP3文件的最后1 MB,并为文件的该部分计算SHA1校验和。我想要这样做的原因是,当我寻找重复的MP3时,即使它是exakt相同的音频文件,标题信息(歌曲标题,专辑等)也可能不同,所以我想我会更好地进行校验和文件的一部分,而不是整个文件的一部分。有没有这样做的有效方式?用PHP读取文件的一部分
答
MP3对歌曲/专辑/艺术家没有任何固有的“标题”信息。这由ID3处理,它可以位于文件的前面(ID3v2,随机大小,取决于指定了多少信息)或末尾(ID3v1,固定的128字节)。要通过校验和正确识别MP3,您必须确保忽略ID3标签的两个版本。此外,可以在.wav容器中嵌入MP3,在这种情况下,可以使用.wav标题和其他内容。
当然,总会有两首歌用不同的比特率,采样率,甚至不同的CD翻录器和编码器编码。所有将产生完全不同的文件,但仍然是“同一首歌曲”。
+0
非常有趣,感谢您的详细信息。 – Johan 2010-04-01 10:08:04
非常感谢! – Johan 2010-03-19 14:45:48
警告:不要忘记正确的错误处理! – soulmerge 2010-03-19 14:46:32