У меня есть код, который берет из текстового файла список электронных писем и вставляет их в базу данных, стараясь не добавлять электронное письмо, если оно уже находится в указанной базе данных. Сейчас я пытаюсь фильтровать электронные письма по мере их чтения из txt-файла и НЕ вставлять их, если они точно или частично совпадают с какими-либо строками в массиве $filter. Другими словами, если в адресе электронной почты есть «gmail», «.ru» или «exec», я не хочу, чтобы они добавлялись.
Любая помощь, чтобы остановить кровотечение из-за того, что я бьюсь головой о стену, была бы здоровой!
Код:
$TheFile = "emails.txt";
$handle = fopen($TheFile, 'r');
$good_count = 0;
$bad_count = 0;
$filter= array("gmail",".ru","exec");
while (!feof($handle))
{
$Data = fgets($handle, 1024);
$output = explode (",",$Data);
$exist = mysql_query("SELECT * FROM table WHERE email='$output[0]'");
if (mysql_num_rows ($exist) == 0) {
$email = strtolower($output[0]);
$sql = "INSERT INTO table SET email='$email'";
mysql_query($sql);
$good_count = $good_count + 1;
}
else {
$bad_count = $bad_count + 1;
}
}
INSERT IGNORE
илиINSERT REPLACE
, где повторяются значения пропускаются или перезаписываются. - person JYelton   schedule 09.08.2011