1

PHP を使用して WebVTT (.vtt) ファイルを読み取った経験のある人はいますか?

私は一連の vtt ファイルを読み込んで、開始時刻と関連テキストを取得する必要がある CakePHP でアプリケーションを開発しています。

ファイルの例として:

00:00.999 --> 00:04.999
文1

00:04.999 --> 00:07.999
文2

00:07.999 --> 00:10.999
三文目
改行あり

00:10.999 --> 00:14.999
4番目の文
3つに
行

次のようなものを抽出できる必要があります。

00:00.999 センテンス 1
00:04.999 センテンス 2
00:07.999 改行のある 3 番目の文
00:10.999 3 行の 4 番目の文

改行がある可能性があるため、各タイムスタンプ間に行数が設定されていないことに注意してください。

私の計画は、各タイムスタンプ間の共通文字列である「-->」を検索することでした。これを達成するための最善の方法は誰にもありますか?

4

3 に答える 3

0

次のようなことができます。

<?PHP

function send_reformatted($vtt_file){
 // Add these headers to ease saving the output as text file
    header("Content-type: text/plain");
    header('Content-Disposition: inline; filename="'.$vtt_file.'.txt"');

    $f = fopen($vtt_file, "r");
    $line_new = "";

    while($line = fgets($f)){
        if (preg_match("/^(\d{2}:[\d\.]+) --> \d{2}:[\d\.]+$/", $line, $match)) {
            if($line_new) echo $line_new."\n";
            $line_new = $match[1];
        } else{
            $line = trim($line);
            if($line) $line_new .= " $line";
        }
    }

    echo $line_new."\n";
    fclose($f);
}


send_reformatted("test.vtt");

?>
于 2014-10-01T19:17:37.313 に答える