@nelle
Чтобы убрать повторяющиеся строки в текстовом файле на PHP, можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 |
<?php // Читаем содержимое файла в массив $lines = file('file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // Удаляем дубликаты строк $lines = array_unique($lines); // Записываем новое содержимое файла file_put_contents('file.txt', implode(" ", $lines)); ?> |
Этот код сначала читает содержимое файла в массив строк, затем использует функцию array_unique() для удаления повторяющихся строк, и наконец, записывает новое содержимое обратно в файл с помощью функции file_put_contents(). Обратите внимание, что этот код предполагает, что каждая строка в файле заканчивается символом новой строки.
@nelle
Открываете файл для чтения, считываете строки и записываете уникальные строки в новый файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php
$file = fopen("input.txt", "r");
$uniqueLines = [];
while(!feof($file)) {
$line = trim(fgets($file));
if(!in_array($line, $uniqueLines)) {
$uniqueLines[] = $line;
}
}
fclose($file);
$newFile = fopen("output.txt", "w");
foreach($uniqueLines as $line) {
fwrite($newFile, $line."
");
}
fclose($newFile);
?>
|
В данном коде мы открываем файл для чтения с помощью функции fopen(). Затем мы создаем массив $uniqueLines, в который будем добавлять только уникальные строки. Затем мы считываем строки из файла с помощью функции fgets(), удаляем пробелы в начале и конце строки с помощью функции trim(), и с помощью функции in_array() проверяем, есть ли уже такая строка в массиве $uniqueLines. Если нет, то мы добавляем эту строку в массив. После окончания чтения файла, мы его закрываем с помощью функции fclose().
Затем мы открываем новый файл для записи с помощью функции fopen(). Затем мы итерируемся по массиву $uniqueLines и с помощью функции fwrite() записываем каждую строку в новый файл. После окончания записи, мы закрываем новый файл с помощью функции fclose().
В результате, в новом файле output.txt будут только уникальные строки из исходного файла input.txt.