Используйте strcmp для предотвращения дублирования строк журнала - PullRequest
1 голос
/ 23 мая 2011

Я использую приведенный ниже код, чтобы сравнить последнюю строку журнала минус отметку времени с $ 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 ]

2 голосов
/ 23 мая 2011

Вы должны использовать усечение на $ last_line.Возможно, после него стоит новая строка, которая делает строки не равными.

1 голос
/ 23 мая 2011

Вы смешиваете $date и $data?или это две разные переменные?

...