'Email', '1' => '123'); $columns = array( '0' => '55', #"FullName" '1' => '56', #"Company" '2' => '57', #"Address" '3' => '58', #"City" '4' => '61', #"State" '5' => '60', #"Postal Code" '6' => '64', # "County" '7' => '62', # "Phone Number" '8' => '63', # "Web Site" '9' => 'Email' ); $default_format = '2'; // 2 = html, 1 = text $default_status = '1'; // 1 = active, 0 = inactive $default_confirm = '1'; // 1 = confirmed, 0 = unconfirmed $ignore_columns = array('e', 'f', 'c', 's'); $emailpos = array_search(array_search('Email', $columns), array_keys($columns)); $formatpos = array_search(array_search('Format', $columns), array_keys($columns)); $confirmpos = array_search(array_search('Confirmation', $columns), array_keys($columns)); $statuspos = array_search(array_search('Status', $columns), array_keys($columns)); if (!is_file($file)) { echo "File " . $file . " doesn't exist!!\n"; exit(); } $fp = fopen($file, 'r'); if (!$fp) { echo "Unable to open file " . $file . "\n"; exit(); } $subscribedate = time(); $bad_emails = array(); $duplicate_emails = array(); $count = 0; $goodcount = 0; $badcount = 0; $duplicatecount = 0; while(($data = fgetcsv($fp, 1000, ',', '"')) !== false) { $email = strtolower($data[$emailpos]); if ($email == 'email') { continue; } if (!$email) { $bad_emails[] = $email; $badcount++; } $count = $goodcount + $badcount + $duplicatecount; if (($count % 500) == 0) { echo "Have imported " . number_format($count) . " subscribers .. \r"; } if (!$email) continue; unset($data[$emailpos]); $format = $default_format; if ($formatpos > 0) { $format = $data[$formatpos]; unset($data[$formatpos]); } $confirm = $default_confirm; if ($confirmpos > 0) { $confirm = $data[$confirmpos]; unset($data[$confirmpos]); } $status = $default_status; if ($statuspos > 0) { $status = $data[$statuspos]; unset($data[$statuspos]); } $query = "select memberid FROM " . $TABLEPREFIX . "members WHERE listid='" . addslashes($listid) . "' AND email='" . addslashes($email) . "'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); if (!empty($row)) { $duplicate_emails[] = $email; $duplicatecount++; continue; } $query = "INSERT INTO " . $TABLEPREFIX . "members(ListID, Email, SubscribeDate, Format, Status, Confirmed, ConfirmCode) VALUES ('" . $listid . "', '" . addslashes($email) . "', '" . $subscribedate . "', '" . addslashes($format) . "', '" . addslashes($status) . "', '" . addslashes($confirm) . "', '" . addslashes(md5(uniqid('ss', true))) . "')"; $result = mysql_query($query); if (!$result) { $bad_emails[] = $email; $badcount++; continue; } $memberid = mysql_insert_id(); if (!$memberid) { $bad_emails[] = $email; $badcount++; continue; } foreach($data as $p => $val) { if (isset($columns[$p])) { $fieldid = $columns[$p]; $query = "INSERT INTO " . $TABLEPREFIX . "list_field_values(fieldid, listid, userid, value) VALUES ('" . $fieldid . "', '" . $listid . "', '" . $memberid . "', '" . addslashes($val) . "')"; $result = mysql_query($query); } } $goodcount++; } fclose($fp); $count = $goodcount + $badcount + $duplicatecount; echo "\n"; echo "All done! Imported " . number_format($count) . " subscribers in total, " . number_format($goodcount) . " successfully.\n"; if (!empty($bad_emails)) { echo "Unable to import these email addresses:\n"; print_r($bad_emails); } if (!empty($duplicate_emails)) { echo "Unable to import these email addresses (duplicate subscribers):\n"; print_r($duplicate_emails); } ?>