1

以下のコードを使用して、ログの最後の行からタイムスタンプを引いたものを$ dataと比較しています。両方をエコーし​​ましたが、まったく同じですが、毎回新しいログエントリを書き込んでいます。私はここで何かが欠けていますか?行が同じである場合は中断する必要があり、そうでない場合は新しいエントリを書き込む必要があります。

$data = "This is a test."
$date = date("m/j : g:i A: ");
$lines = file('log.txt');
$last_line = $lines[count($lines)-1];
$last_line = preg_replace('/[01][0-9]\/[0-3]?[0-9] : 1?[0-9]:[0-5][0-9] (A|P)M: /','',$last_line);

if (strcmp($data, $last_line) == 0) {
break;
} else {
file_put_contents('log.txt', $date.$data.PHP_EOL, FILE_APPEND);
}
}
4

2 に答える 2

2

$last_lineでトリムを使用する必要があります。文字列を等しくしないようにしている改行がその後にある可能性があります。

于 2011-05-23T14:25:00.317 に答える
1

あなたは混乱し$dateてい$dataますか?または、これら2つの異なる変数ですか?

于 2011-05-23T14:21:59.227 に答える