これを処理する方法はたくさんあります...ファイルが本当に大きくない限り、実際には非常に簡単です。この方法はメモリ効率が最も高いわけではありませんが、おそらく最も簡単です。
を使用してファイルを行の配列に読み込み、file()
それらをループして、でそれぞれを分解し|
ます。タイムスタンプが現在の時刻よりも新しい場合は、出力配列に行を追加します。
最後に、出力配列の値を使用してファイルを書き戻します。
$output = array();
// Read the file into an array of lines:
$lines = file('yourfile.txt');
// Store the current time
$now = time();
foreach ($lines as $line) {
// Split on |
list($content, $time) = explode("|", $line);
if ($time > $now) {
// Keep the line in the output array:
$output[] = $line;
}
// Otherwise do nothing with it
}
// Implode it back to a string and write to file:
$outstring = implode("\n", $output);
file_put_contents("yourfile.txt", $outstring);
yourfile.txt
Webサーバーユーザー、またはこのスクリプトを実行しているユーザーに適切な書き込み権限があることを確認してください。