.lrc的任何JavaScript解析器?

时间:2012-07-16 18:09:33

标签: javascript parsing .lrc

我使用的是Kejun's Blog的代码。

我想解析.lrc(基本上是一个歌词文件),以便获取时间变量以及字符串(阅读歌词)。我尝试了这段代码,似乎无法获得输出。

   <html>
<head> 
<script src="jquery-1.7.1.js"></script>
<script> 
$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "a.txt",
        dataType: "text",
        success: function (data) {
            parseLyric(data);
        }
    });
});

var _current_lyric = new Array();

function convertLRCLyric(inf) {
    inf += "n";
    var lyric = inf.match(/([(d{2}:d{2}(.d{1,2}){0,1})]){1,}W*n|([(d{2}:d{2}:d{2}(.d{1,2}){0,1})]){1,}W*n/ig);
    var l_s = '',
        l_tt, l_ww, l_i, l_ii;
    if (!lyric || !lyric.length) {
        return;
    }

    for (l_i = 0; l_i < lyric.length; l_i++) {
        l_tt = lyric[l_i].match(/([d{2}:d{2}(.d{1,2}){0,1}])|([d{2}:d{2}:d{2}(.d{1,2}){0,1}])/ig);
        l_ww = lyric[l_i].replace(/[S+]/ig, '').replace(/n{1,}/ig, '');
        for (l_ii = 0; l_ii < l_tt.length; l_ii++) {
            l_tt[l_ii] = l_tt[l_ii].replace(/[/,'').replace(/]/, '');
            if (l_tt[l_ii].search(/d{2}:d{2}:d{2}.d{2}/g) >= 0) {
                _current_lyric[l_tt[l_ii].substring(0, l_tt[l_ii].length - 1)] = l_ww;
            } else if (l_tt[l_ii].search(/d{2}:d{2}:d{2}.d{1}/g) >= 0) {
                _current_lyric[l_tt[l_ii]] = l_ww;
            } else if (l_tt[l_ii].search(/d{2}:d{2}:d{2}/g) >= 0) {
                _current_lyric[l_tt[l_ii] + ".0"] = l_ww;
            } else if (l_tt[l_ii].search(/d{2}:d{2}.d{2}/g) >= 0) {
                _current_lyric["00:" + l_tt[l_ii].substring(0, l_tt[l_ii].length - 1)] = l_ww;
            } else if (l_tt[l_ii].search(/d{2}:d{2}.d{1}/g) >= 0) {
                _current_lyric["00:" + l_tt[l_ii]] = l_ww;
            } else if (l_tt[l_ii].search(/d{2}:d{2}/g) >= 0) {
                _current_lyric["00:" + l_tt[l_ii] + ".0"] = l_ww;
            }
        }
    }
}

function parseLyric(allText) {
    _current_lyric = [];
    convertLRCLyric(allText);
    var ly = "";
    for (var time in _current_lyric) {
        ly += time + "--" + _current_lyric[time] + "n";
    }
    alert(ly);
}
</script>
</head>
<body>

</body>
</html>

但我一直在警告。任何帮助都会很棒。提前谢谢。

1 个答案:

答案 0 :(得分:0)

代码php:格式为

public function get_lrc_song($song) {
    $lyrics_file = $song ['lyrics_file'];
    $json = curlClass::getInstance ( true )->fetchURL ( $lyrics_file );
    $content = explode ( "\n", $json );
    $regix = "$\][^>]+$";
    $result = "";
    foreach ( $content as $item ) {
        $isHas = preg_match ( $regix, $item, $data );
        $dt = str_replace ( "]", "", $data[0] );
        if ($dt != ""){
            $result .= $dt . "\n";
        }
    }
    echo $result;
}