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

Discussion in 'PHP' started by zoron, 27 Nov 2007.

  1. zoron

    zoron New Member

    Joined:
    17 Nov 2007
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    Нужен скрипт сравнения файлов и запись уникальной информации в другой файл( есть 2 файла их нужно сравнить дубликат удалять, чего нету добавлять)
     
  2. Dr.Z3r0

    Dr.Z3r0 Leaders of the World

    Joined:
    6 Jul 2007
    Messages:
    284
    Likes Received:
    595
    Reputations:
    567
    Так вот код навскидку:
    Code:
    <?php
    $file1=file_get_content('file1.txt');
    $file2=file_get_content('file2.txt');
    if(md5($file1)===md5($file2))unlink('file2.txt');
    ?>
    Сравнивает два файла на основе контрольной суммы созданной с помощью md5 если контрольная сумма одинакова второй файл удаляецо...

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

    Loopy New Member

    Joined:
    14 Jul 2007
    Messages:
    29
    Likes Received:
    1
    Reputations:
    0
    Конкретная семантика. Универсального скрипта не существует.
     
  4. zoron

    zoron New Member

    Joined:
    17 Nov 2007
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    Это два файла на каждой строчке есть какоето значение напиример(кига1
    книга2 каждая запись на отдельной строчки)
     
  5. x0x01

    x0x01 Elder - Старейшина

    Joined:
    19 Oct 2006
    Messages:
    32
    Likes Received:
    6
    Reputations:
    1
    2 файла слить в один, отсортировать, дублирующиеся строки удалить, на shell это примерно так cat file.txt | sort | uniq
    наиболее универсален, но бесполезен, если порядок строк в файле имеет значение
     
    #5 x0x01, 28 Nov 2007
    Last edited: 28 Nov 2007
  6. zoron

    zoron New Member

    Joined:
    17 Nov 2007
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    можно по подробнее?! эта команда
    cat file.txt | sort | uniq
    куда сюда второй файл пихать? и чутка о shell? ЧТО ЭТО? :confused:
     
  7. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Shell - командный интропретатор(в основном bash),
    bash->man cat
     
  8. C!klodoL

    C!klodoL Elder - Старейшина

    Joined:
    5 Jun 2007
    Messages:
    302
    Likes Received:
    208
    Reputations:
    4
    cat file.txt | sort | uniq > bugaga.txt

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

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,191
    Reputations:
    430
    Функция fopen возврщает не содежимое файлов, а дескрипторы, по которым осуществляется чтение - они специально подбираются таким образом, чтобы при любых условиях не совпадали с другими дескрипторами, для того чтобы PHP мог различать различные открытые файла. Если хочешь сравнить содержимое, лучше воспользуйся функцией file_get_contents
    PHP:
    <?php
    $a
    =file_get_contents('input.txt');
    $b=file_get_contents('output.txt');
    if(
    $a==$b)
    {
      echo(
    "дэ...");
    }
    else
    {
      echo(
    "нде...");

    ?>
     
  10. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    Code:
    if(md5($file1)===md5($file2))unlink('file2.txt');
    - почему три знака =? интересно просто
     
  11. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    <?php
    passthru("cmp -c 1.txt 2.txt");
    echo '<br>';
    passthru("diff 1.txt 2.txt");
    ?>
     
    1 person likes this.