[help] Как сделать сравнение баз сайтов

Тема в разделе "Как сделать...", создана пользователем master6681, 5 фев 2009.

Статус темы:
Закрыта.
  1. master6681

    master6681

    Регистр.:
    17 дек 2006
    Сообщения:
    577
    Симпатии:
    124
    Есть одна графа с сайтами и другая. Как можно сделать их сравнение. Вот как тут http://compare.newlinker.ru/default.aspx только этот сервис не работает :(
    просто нужно выделить общие каталоги (ну или сайты) из уже имеющихся двух баз. Или может кто нибудь знает какую нибудь программу ?
     
  2. Klepach

    Klepach

    Регистр.:
    31 окт 2008
    Сообщения:
    942
    Симпатии:
    250
    Клёвый сервис ты подкинул. А они там сидят и им приходят все базы которые кто-то своим трудом насобирал.

    если нужно я могу это сделать через альсаб. пиши в личку. Договоримся. Если базы стоящие то сделаю бесплатно и очень быстро.
     
  3. master6681

    master6681

    Регистр.:
    17 дек 2006
    Сообщения:
    577
    Симпатии:
    124
    Да нет. Аллсаб у меня самого есть. Базы через аллсаб я могу сравнить. Вот только проблема в том, что в аллсаб можно добавить базы, а показать общие каталоги (или сайты) которые присутствуют в двух базах не получится. Да и мне собственно не базы каталогов надо будет сравнивать а просто сайты. Есть список сайтов А и Б нужно показать одинаковые сайты которые присутствуют в списке А и Б.
     
  4. Klepach

    Klepach

    Регистр.:
    31 окт 2008
    Сообщения:
    942
    Симпатии:
    250
    Моно и лостаточно легко, нужно произвести с базами порядка 6 действий и всё. Просто расписывать в влом. Но для вас могу сам сравнить ваши базы и выслать то что вам нужно.
     
  5. Alek$

    Alek$ Постоялец

    Регистр.:
    24 сен 2008
    Сообщения:
    63
    Симпатии:
    25
    Навскидку:
    Код:
    <?php
    $base1 = file('base1.txt');
    $base2 = file('base2.txt');
    $common = array_intersect($base1, $base2);
    $diff = array_diff($base1, $base2);
    file_put_contents('common.txt', implode('', $common));
    file_put_contents('union.txt', implode('', $base2)."\n".implode('', $diff));
    ?>
    base1.txt и base2.txt - текстовые файлы, на каждой строке которых - по одному адресу сайта.
    После работы скрипта в файл common.txt запишутся адреса, присутствующие одновременно в обеих базах, в union.txt - все адреса, присутствующие в обеих базах без повторов.
     
    master6681 нравится это.
  6. master6681

    master6681

    Регистр.:
    17 дек 2006
    Сообщения:
    577
    Симпатии:
    124
    Да это именно то что нужно. Знать бы как это сделать чтоб было это все в веб интерфейсе как тут http://compare.newlinker.ru/default.aspx было бы вообще супер.
     
  7. Alek$

    Alek$ Постоялец

    Регистр.:
    24 сен 2008
    Сообщения:
    63
    Симпатии:
    25
    Это вообще просто:
    Код:
    <?php
    if(isset($_POST['submit']))
    {
    	$base1 = explode("\n", $_POST['base1']);
    	$base2 = explode("\n", $_POST['base2']);
    	$common = implode("\n",array_intersect($base1, $base2));
    	$diff1 = implode("\n",array_diff($base1, $base2));
    	$diff2 = implode("\n",array_diff($base2, $base1));
    }
    ?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <form action="" method="post">
    <table border="1">
    <tr><th colspan="2">Входные данные</th></tr>
    <tr><th>База 1:</th><th>База 2:</th></tr>
    <tr><td>
    <textarea cols="70" rows="20" name="base1"></textarea>
    </td><td>
    <textarea cols="70" rows="20" name="base2"></textarea>
    </td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Сравнить"></td></tr>
    <tr><th colspan="2">Результат сравнения</th></tr>
    <tr><th>Каталоги, которые есть только в базе 1:</th><th>Каталоги, которые есть только в базе 2:</th></tr>
    <tr><td>
    <textarea cols="70" rows="20"><?=$diff1?></textarea>
    </td><td>
    <textarea cols="70" rows="20"><?=$diff2?></textarea>
    </td></tr>
    <tr><th>Общие каталоги:</th><th>&copy; Alek$, 2009</th></tr>
    <tr><td>
    <textarea cols="70" rows="20"><?=$common?></textarea>
    </td><td>
    </td></tr>
    
    </table>
    </form>
     
    agf, karapet и master6681 нравится это.
Статус темы:
Закрыта.