效果图:代码如下: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/>');
评论
13条评论2023 Lv.1
Chrome 109.0.0.0
Windows 回复
感谢楼主
,好人一生平安
广西百色市 电信
5555555 Lv.1
Chrome 94.0.4606.71
Windows 回复
666666热乎
湖南省长沙市 电信
JAVA Lv.1
Chrome 94.0.4606.71
Windows 回复
看一看
山东省 联通
mua123 Lv.1
Chrome 94.0.4606.71
Windows 回复
666
陕西省西安市 电信
浅夏云-浅夏 Lv.1
Chrome 95.0.4638.69
Windows 回复
安徽省淮南市 联通
孜然 Lv.1
Chrome 106.0.0.0
Mac OS X 10.15.7 回复
try啊哈哈哈啊哈
中国 移动
踢足球的肖邦 Lv.1
Chrome 87.0.4280.141
Android 11 回复
刚才丑八怪
广东省珠海市斗门区 电信
周松松博客 Lv.1
Chrome 97.0.4692.71
Windows 7 x64 Edition 回复
看一看
福建省 移动
aigozi Lv.1
Chrome 78.0.3904.108
Windows 回复
效地址,于是就想到了先检查下地址是否有效,
中国 移动
lssun Lv.5 回复
导航栏有用
广东省东莞市 联通