解析和转换酷狗krc歌词LRC歌词的PHP源代码
最近发现的酷狗音乐歌词直接浏览是乱码在酷狗音乐歌词集,通常看到歌词LRC格式文本,酷狗专用的KRC格式是经过特殊处理的,通常用酷狗音乐没仔细看他有什么不同,不同的歌词,每天听,所以可以突出的歌词。反编译的酷狗的Flash播放器和找到KRC解密Actionscript代码:
公共功能loadercompletehandler(参数:ByteArray):无效{
this.newkeybytes = { 64, 71, 97,119, 94, 50,116, 71, 81,54, 49, 45,206, 210, 110,105 };
结果:* =参数VaR;
无功krcbytes:* =新ByteArray();
result.position = 4;
result.readbytes(krcbytes);
我:* = krcbytes.length VaR;
var;
当(i < l){
我krcbytes { } = krcbytes {我} ^这。newkeybytes {我这。newkeybytes长度};
i =(i + 1);
}
{试
krcbytes.uncompress();
赶上(错误:securityerror){ }
Errorfun(uncompresserror );
返回;
}
krcbytes.position = 0;
this.mylyric.datastr = krcbytes.readutfbytes(krcbytes。长度);
This.successfun();
返回;
}
根据这个代码,代码可以很快地转换成PHP解析代码:
enkey美元=数组(64, 71, 97,119, 94, 50,116, 71, 81,54, 49, 45,206, 210,等);
krc_content美元= substr(krc_content美元,4);
$ len = strlen($ krc_content);
krc_compress美元=;
为($ = 0;$ K $;
krc_compress美元= CHR(ORD($ krc_content { $ K })^ enkey美元{ $ % 16 });
}
krc_text = gzuncompress美元(美元krc_compress);
以上krc_content美元由KRC歌词和文本内容的压缩,压缩和加密。得到了抒情文本的KRC明文krc_text美元,然后它可以很容易地转化为LRC歌词。
功能krc2lrc(krc_content美元,美元胶=n){
enkey美元=数组(64, 71, 97,119, 94, 50,116, 71, 81,54, 49, 45,206, 210,等);
krc_content美元= substr(krc_content美元,4);
$ len = strlen($ krc_content);
krc_compress美元=;
为($ = 0;$ K $;
krc_compress美元= CHR(ORD($ krc_content { $ K })^ enkey美元{ $ % 16 });
}
krc_text = gzuncompress美元(美元krc_compress);
(preg_match_all /(AR |钛|偏移):(1) /,krc_text美元,$匹配);
lrc_text =美元崩溃(合胶,$matches { 0 })为胶;
(preg_match_all /(D { 0.8 })、(D { 0.8 })}(1) /
unset(krc_text美元,krc_compress美元美元美元,krc_content,enkey);
如果(!空($匹配{ 1 }){
foreach($matches { 1 } $ K = > $ V){
列表($秒,给美元)=爆炸($ V /,1000);
lrc_time美元=日期(我:S,1388534400 + $秒)。'。substr($米利斯,0,2);
lrc_cont美元= preg_replace( / /
lrc_text美元={ } { } { lrc_time美元美元美元lrc_cont } {胶};
}
}
返回的lrc_text;
}
简单的例子如下:
$content = file_get_contents(1。KRC);
回声krc2lrc($内容);