效果图:代码如下: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 < $len; $k++) {
$krc_compress .= chr(ord($krc_content[$k]) ^ $enKey[$k % 16]);
}
$krc_text = gzuncompress($krc_compress);
return $krc_text;
preg_match_all("/[(ar|ti|offset):(.+)]/", $krc_text, $matches);
$lrc_text = implode($glue, $matches[0]) . $glue;
preg_match_all("/[(d{0,8}),(d{0,8})](.+)/", $krc_text, $matches);
unset($krc_text, $krc_compress, $krc_content, $enKey);
if (!empty($matches[1])) {
foreach($matches[1] as $k => $v) {
list($seconds, $millis) = explode('.', $v / 1000);
$lrc_time =
date('i:s', 1388534400 + $seconds) . '.' . substr($millis, 0, 2);
$lrc_cont = preg_replace("/<d{1,8},d{1,8},d{1,8}>/", '', $matches[3][$k]);
$lrc_text .= "[{$lrc_time}]{$lrc_cont}{$glue}";
}
}
return $lrc_text;
}简单的示例:$content = file_get_contents("1.krc");
echo krc2lrc($content,'<br/>');
评论
17条评论need login Lv.1 Chrome 119.0.6045.160 Windows 回复
感谢楼主,好人一生平安
山东省淄博市 电信
大发发大发发 Lv.1 Chrome 86.0.4240.198 Windows 回复
大发发
中国 移动
太阳风 Lv.1 Firefox 115.0 Windows 7 x64 Edition 回复
一直在学习
河南省南阳市 电信
超规格 Lv.1 Chrome 79.0.3945.79 Windows 7 x64 Edition 回复
我看看呢
湖北省十堰市 电信
怪兽 Lv.1 Chrome 113.0.0.0 Windows 回复
股份大股东是VS
陕西省榆林市米脂县 电信
海纳百川 Lv.1 Chrome 109.0.0.0 Windows 回复
手术室
新疆哈密地区 电信
明了 Lv.1 Chrome 86.0.4240.198 Windows 回复
正是需要的,求下载
重庆市云阳县 电信
joannefal Lv.1 Chrome 86.0.4240.198 Windows 回复
㞏福安后方晚饭发拉横幅啊
澳大利亚
高山流水 Lv.1 Chrome 86.0.4240.198 Windows 回复
新人报道学习一下
山东省济南市 移动
智云 Lv.1 Chrome 86.0.4240.198 Windows 回复
感谢楼主,好人一生平安
广东省韶关市 移动