<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="php源码将酷狗krc歌词解析并转换为lrc歌词" id="card1">
<p> 游客</p><p>
标题:php源码将酷狗krc歌词解析并转换为lrc歌词<br/>
正文:<br/>
最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是“乱码”，自己平时所见的歌词都是lrc格式的文本，这种酷狗专用的krc格式的显然是经过特别处理过的，平时用酷狗听音乐也没仔细看他的歌词有什么不同，只是与天天静听等不同的是可以逐字高亮显示歌词。对酷狗的flash播放器进行反编译，发现这段krc解密的ActionScript代码：public function loaderCompleteHandler(param1:ByteArray) : void{<br/>  this.newkeyBytes = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105]; <br/> var result:* = param1; <br/> var krcBytes:* = new ByteArray(); <br/> result.position = 4; <br/> result.readBytes(krcBytes); <br/> var l:* = krcBytes.length; <br/> var i:int; <br/> while (i &amp;lt; l) {<br/> krcBytes[i] = krcBytes[i] ^ this.newkeyBytes[i % this.newkeyBytes.length]; <br/> i = (i + 1); <br/> }<br/> try { <br/> krcBytes.uncompress(); <br/> } catch (error:SecurityError) { <br/> errorfun(&quot;uncompressError&quot;);<br/> return; <br/> } <br/> krcBytes.position = 0; <br/> this.myLyric.dataStr = krcBytes.readUTFBytes(krcBytes.length); <br/> this.successfun(); <br/> return; <br/>}根据这段代码可以很快转换成php解析代码：$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 4<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1295&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1295&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1295&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1295&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1295&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1295">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1295">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>