0

そのようにフォーマットされたテキストファイルがある場合:

00:00:00 Text 1
00:00:01 Text 2
00:00:02 Text 3
00:00:03 Text 4
00:00:04 Text 5
00:00:05 Text 6

次の行から始まる特定の時間の後にすべてのテキストを取得するPHP関数を作成するにはどうすればよいですか?

例:時刻00:00:03を指定し、00:00:04からすべての行をフェッチします。

4

2 に答える 2

2

これは宿題ではありませんか?

1つのアプローチは、ファイルを読み取り、改行で分割し、問題の行が見つかるまでループしてから、配列の残りの部分を取得し、再結合して、戻ります。

もちろん、これを行う方法はたくさんあります。

$contents = file_get_contents("/path/to/file.txt");
$lines = explode("\n",$contents);
for($i = 0; $i < count($lines); $i++) {
    $time = substr($lines[$i],0,8);
    if( $time == "00:00:03" ) {
        array_splice($lines, 0, $i+1) //removes 0 -- $i from $lines
        return implode("\n", $lines);
    }
}
于 2012-07-18T23:10:31.830 に答える
2

PHP関数をチェックアウトします。

基本的に、次のようなプロセスに従う必要があります。

  1. テキストを含むファイルへのファイルポインタを開く
  2. fgetsを使用して一度に線を引く
  3. substrを使用して時間を取得し、一致するかどうかを確認します
  4. 一致しない場合は続行します。一致する場合は、フラグを設定して続行します。
  5. フラグが満たされている場合は、substrチェックをスキップして、データに対して何かを実行します(この時点で、データは期待どおりになります)。
于 2012-07-18T23:11:27.743 に答える