PDA

Просмотр полной версии : Нужен скрипт сравнения файлов


zoron
28.11.2007, 00:19
Нужен скрипт сравнения файлов и запись уникальной информации в другой файл( есть 2 файла их нужно сравнить дубликат удалять, чего нету добавлять)

Dr.Z3r0
28.11.2007, 02:11
Нужен скрипт сравнения файлов и запись уникальной информации в другой файл( есть 2 файла их нужно сравнить дубликат удалять, чего нету добавлять)
Так вот код навскидку:
<?php
$file1=file_get_content('file1.txt');
$file2=file_get_content('file2.txt');
if(md5($file1)===md5($file2))unlink('file2.txt');
?>Сравнивает два файла на основе контрольной суммы созданной с помощью md5 если контрольная сумма одинакова второй файл удаляецо...

Ну а если ты имел ввиду создания общего файла(как то так) из двух почти одинаковых то тут надо глянуть как эти файлы выглядят.

Loopy
28.11.2007, 03:25
Конкретная семантика. Универсального скрипта не существует.

zoron
28.11.2007, 11:42
Это два файла на каждой строчке есть какоето значение напиример(кига1
книга2 каждая запись на отдельной строчки)

x0x01
28.11.2007, 14:34
2 файла слить в один, отсортировать, дублирующиеся строки удалить, на shell это примерно так cat file.txt | sort | uniq
наиболее универсален, но бесполезен, если порядок строк в файле имеет значение

zoron
28.11.2007, 16:01
2 файла слить в один, отсортировать, дублирующиеся строки удалить, на shell это примерно так cat file.txt | sort | uniq
наиболее универсален, но бесполезен, если порядок строк в файле имеет значение
можно по подробнее?! эта команда
cat file.txt | sort | uniq
куда сюда второй файл пихать? и чутка о shell? ЧТО ЭТО? :confused:

AkyHa_MaTaTa
28.11.2007, 16:17
Shell - командный интропретатор(в основном bash),
bash->man cat

C!klodoL
28.11.2007, 16:40
cat file.txt | sort | uniq > bugaga.txt

и чутка о shell? ЧТО ЭТО?
это в линуксе такая командная строка

Ch3ck
28.11.2007, 23:38
Функция fopen возврщает не содежимое файлов, а дескрипторы, по которым осуществляется чтение - они специально подбираются таким образом, чтобы при любых условиях не совпадали с другими дескрипторами, для того чтобы PHP мог различать различные открытые файла. Если хочешь сравнить содержимое, лучше воспользуйся функцией file_get_contents

<?php
$a=file_get_contents('input.txt');
$b=file_get_contents('output.txt');
if($a==$b)
{
echo("дэ...");
}
else
{
echo("нде...");
}
?>

x-demon
29.11.2007, 00:31
if(md5($file1)===md5($file2))unlink('file2.txt'); - почему три знака =? интересно просто

blackybr
29.11.2007, 00:48
<?php
passthru("cmp -c 1.txt 2.txt");
echo '<br>';
passthru("diff 1.txt 2.txt");
?>