За последние 24 часа нас посетили 17711 программистов и 1722 робота. Сейчас ищут 869 программистов ...

Захешировать телефоны или e-mail в текстовом файле

Тема в разделе "PHP для новичков", создана пользователем Sigizmund, 20 июл 2016.

  1. Sigizmund

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

    С нами с:
    14 июн 2016
    Сообщения:
    37
    Симпатии:
    2
    Адрес:
    Жопа мира
    Здравствуйте. У Яндекса есть сервис "Аудитории", ему нужно предоставить файл с телефонами или e-mail, требования к файлам: https://yandex.ru/support/audience/file.xml
    Может подскажете скрипт, который бы конвертировал файл source.txt:
    Код (Text):
    1. vasya@mail.ru
    2. petyaya@mail.ru
    3. vova@mail.ru
    в файл hash.txt:
    Код (Text):
    1. a31259d185ad013e0a663437c60b5d0
    2. 78ee6d68f49d2c90397d9fbffc3814d1
    3. 702e8494aeb560dff987e623e71bccf8
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    https://php.ru/manual/function.md5.html

    а дальше читаем остальные требования.
    --- Добавлено ---
    Там пару строчек кода. Соберись)
     
    Sigizmund нравится это.
  3. Sigizmund

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

    С нами с:
    14 июн 2016
    Сообщения:
    37
    Симпатии:
    2
    Адрес:
    Жопа мира
    Вроде работает:
    PHP:
    1. $handle = @fopen("source.txt", "r");
    2. $hash = @fopen("hash.txt", "w");
    3. if ($handle and $hash) {
    4.     while (($buffer = fgets($handle, 4096)) !== false) {
    5.         $md5 = md5( $buffer ) . "\n";
    6.         fputs( $hash, $md5 );
    7.     }
    8.     if (!feof($handle)) {
    9.         echo "Error: unexpected fgets() fail\n";
    10.     }
    11.     fclose($handle);
    12.     fclose($hash);
    13. }
    Но у меня есть подозрение, что хешируется и перенос строки, fgets же и переносы возвращает. Как проверить?
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    выполни в консоле
    Код (Text):
    1. php -r "echo md5('mail');"
    и проверь что в файле.
     
    Sigizmund нравится это.
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Спасет trim:
    PHP:
    1. $buffer = trim($buffer);
     
    Sigizmund нравится это.
  6. Sigizmund

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

    С нами с:
    14 июн 2016
    Сообщения:
    37
    Симпатии:
    2
    Адрес:
    Жопа мира
    Отлично всё работает, и значения проверил, и trim() помогла. Есть один момент: файл мне нужно сохранить в utf-8 или windows-1251, а он его в ASCII сохраняет. Как это исправить?
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.