Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Загрузка данных клиентов из неформатированного текстового (excel, csv) файла в базу данных на PHP

Если у вас переход от одного движка(CMS) к другому или к вам в руки попала база горячих клиентов и вам просто необходимо срочно ее проспамить загрузить для последующего использования, Вам просто необходим данный скрипт.

Скрипт считает что на одной строке может быть информация только об одном клиенте. Вытаскивает имя, дату рождения, номер телефона, е-mail.

Для проверки работы скипта вставьте в данное поле текст, содержащий телефны и е-mail или загрузите файл:


Для пакетной проверки, Вы можете загрузить файл любого текстового формата(txt,csv), любой столбец которого содержит телефон и/или e-mail. Телефон может быть указан в любом формате, например: +7(918)-123-44-55 или 8918-123-4455 и с любыми разделителями из ' ','(',')','-','+'. Если телефон содержит только 10 цифр и начинается с 9, ему будет в начале добавлен +7

Для загрузки файла необходимо войти или зарегистрироваться!

Результат Вам будет продублирован на указанную в профиле почту.

Исходный код представленного здесь скрипта парсера e-mail адресов и телефонов из неструктурированных данных.

<?
$ss = explode("\n", trim($_POST['data']));
foreach ($ss as $name){
  $email = $birthday = $phone = '';
  // вытаскиваю д.р.
  if (preg_match('|^(.*?)\s(\d{1,2}[\.\,\/\-]\d{2}[\.\,\/\-]\d{2,4})\s(.*?)$|', ' ' . $name . ' ', $arr)){
    $name = trim($arr[1] . ' ' . $arr[3]);
    $birthday = str_replace(',', '.', str_replace('/', '.', str_replace('-', '.', $arr[2])));
    $birthday = "'" . date('Y-m-d', strtotime($birthday)) . "'";

  } elseif (preg_match('|^(.*?)\s(\d{4}[\.\,\/\-]\d{2}[\.\,\/\-]\d{2})\s(.*?)$|', ' ' . $name . ' ', $arr)) { // 1986-10-23
    $name = trim($arr[1] . ' ' . $arr[3]);
    $birthday = "'" . str_replace(',', '-', str_replace('/', '-', str_replace('.', '-', $arr[2]))) . "'";

  }

  // вытаскиваю мыло
  if (preg_match('/^(.*?)\s([a-z0-9_\-\.\+]{1,20}@[a-z0-9\-а-ярстуфхцчщшэюё]+\.(?:[a-z]{2,6}|рф))\s(.*?)$/is', ' ' . $name . ' ', $arr)){
    $name = trim($arr[1] . ' ' . $arr[3]);
    $email = trim($arr[2]);
  }

  // вытаскиваю телефон
  if (preg_match('|^(.*?)([\+\d\-\(\)]{8,15})(.*?)$|', $name, $arr)){//8-928-199-00-03
    $phone = $arr[2];
    $name = trim($arr[1] . ' ' . $arr[3]);
  }

  if(!empty($email)||!empty($phone)){
    echo "<br>\nИмя:<b>" . $name . '</b>, телефон: <b>' . $phone . "</b>, д.р.: <b>" . $birthday . '</b>, mail: <b>' . $email.'</b>';
    // DB::sql("INSERT IGNORE INTO `" . db_prefix . "users` ( `name`, `tel`, `birthday`, `date0`, `sex`, `email`)
    // VALUES ( '" . addslashes($name) . "', '" . addslashes($tel) . "', " . $birthday . ", '" . date('Y-m-d') . "', '1', '" . addslashes($email) . "')");
  }
}
?>

Данный скрипт парсинга e-mail адресов используется для e-mail рассылок с помощью: скрипт email рассылки.


.