使用strcmp可以防止重复的日志行

时间:2011-05-23 14:18:10

标签: php compare strcmp

我正在使用下面的代码来比较日志的最后一行减去与$ 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);
}
}

2 个答案:

答案 0 :(得分:2)

您应该在$ last_line上使用修剪。之后可能会有一个换行符使字符串不相等。

答案 1 :(得分:1)

您是在混淆$date还是$data?或者是那两个不同的变量?