За последние 24 часа нас посетили 35494 программиста и 1818 роботов. Сейчас ищет 831 программист ...

Сравнение двух файлов

Тема в разделе "PHP для новичков", создана пользователем sstotenkopf, 12 сен 2011.

  1. sstotenkopf

    sstotenkopf Активный пользователь

    С нами с:
    7 сен 2011
    Сообщения:
    17
    Симпатии:
    0
    Добрый вечер! Как можно реализовать сравнение двух текстовых файлов. Оба имеют записи вида <id>135760051</id> Требуется вычислить повторяющиеся записи и уникальные, на выходе получить третий тхт с уникальными записями. Заранее спасибо!
     
  2. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    задача бьётся на 2 части
    1) simplexml
    2) сравнение массивов , тут только правильно описать сравнение и запись повторяющихся в новый массив
     
  3. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
  4. sstotenkopf

    sstotenkopf Активный пользователь

    С нами с:
    7 сен 2011
    Сообщения:
    17
    Симпатии:
    0
    Не повторяющихся... запись уникальных... А как их сравнить?
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    а вообще можно намного проще , чтото я намудрил
    напишу как освобожусь если до меня никто не напишет
    а покачто скажите - записи каждая на новой строке?
    <id> везде одинаковый? или <name> и т.п есть ?
     
  6. sstotenkopf

    sstotenkopf Активный пользователь

    С нами с:
    7 сен 2011
    Сообщения:
    17
    Симпатии:
    0
    Записи каждая на новой, файл начинается с <?xml version="1.0" encoding="UTF-8"?>
    <ids>, далее идет список записей каждая с новой строки, как я указывал выше, в конце массива </ids>
     
  7. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    PHP:
    1.  
    2. <?php
    3. $xml1 = 'test1.xml';
    4. $xml2 = 'test2.xml';
    5. $a = simplexml_load_file($xml1);
    6. $b = simplexml_load_file($xml2);
    7. $array_1 = (array)$a->children();
    8. $array_2 = (array)$b->children();
    9. $result  = array_diff($array_1['id'],$array_2['id']);
    10. array_walk($result,function(&$i){$i = '<id>'.$i.'</id>';});;
    11. $xml = new SimpleXMLElement("<ids>\n".implode("\n",$result)."\n</ids>");
    12. $xml->asXML('result1.xml');
    13.