找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1610|回复: 0
打印 上一主题 下一主题

将酷狗krc歌词解析并转换为lrc歌词php源码

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-14 05:57:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是“乱码”,自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐也没仔细看他的歌词有什么不同,只是与天天静听等不同的是可以逐字高亮显示歌词。
对酷狗的flash播放器进行反编译,发现这段krc解密的ActionScript代码:
public function loaderCompleteHandler(param1:ByteArray) : void{
this.newkeyBytes = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105];
var result:* = param1;
var krcBytes:* = new ByteArray();
result.position = 4;
result.readBytes(krcBytes);
var l:* = krcBytes.length;
var i:int;
while (i
根据这段代码可以很快转换成php解析代码:
$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
$krc_content = substr($krc_content,4);
$len = strlen($krc_content);
$krc_compress = '';
for ($k = 0; $k
上面的$krc_content为krc歌词压缩加密的文本内容,得到了解析后的krc明文文本歌词$krc_text,然后就可以很容易的转换成lrc歌词了,如下:
function krc2lrc($krc_content,$glue = "n"){
$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
$krc_content = substr($krc_content,4);
$len = strlen($krc_content);
$krc_compress = '';
for ($k = 0; $k $v){
list($seconds, $millis) = explode('.', $v / 1000);
$lrc_time = date('i:s',1388534400 + $seconds).'.'.substr($millis,0,2);
$lrc_cont = preg_replace("//",'',$matches[3][$k]);
$lrc_text .= "[{$lrc_time}]{$lrc_cont}{$glue}";
}
}
return $lrc_text;
}
简单示例如下:
$content = file_get_contents('1.krc');
echo krc2lrc($content,'
');
            
            
您可能感兴趣的文章:
  • PHP实现网上点歌(二)
  • 谷歌音乐搜索栏的提示功能php修正代码
  • php启用sphinx全文搜索的实现方法
  • php站内搜索关键词变亮的实现方法
  • php 批量查询搜狗sogou代码分享
  • PHP查找与搜索数组元素方法总结
  • php实现搜索一维数组元素并删除二维数组对应元素的方法
  • php获取从百度、谷歌等搜索引擎进入网站关键词的方法
  • PHP实现简单搜歌的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端