Как при записи в файл пропускать повторяющее значение?

Подскажите как при записи в файл не допускать дублирующее значение
есть файл
1<|>Petro Boiko<|>bridun<|>
2<|>Petro<|>petro<|>
3<|>Petro<|>petro<|>

$data = file("file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach($data as $rows)
	{
	$row = explode("<|>", $rows);	
	if (!strripos($rows, "<|>")) continue; 
	}

//////////////////////

if (is_writeable("file.txt"))
	{
	$f = fopen("file.txt", "a+");
	$write_text = "$max<|>$name<|>$mess<|>\n";	
	}
//////////////////////
	
	if (in_array($row[2], $rows))
		{ //Если уже есть в массиве

		// удаляем строку

		echo ("Запись существует.");
		}
	  else
		{
		fputs($f, $write_text);
		fclose($f);
		echo ("Запись добавлена.");
		}
	
		  //else echo ("Не удалось записать в файл");
		}
	}
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 2
solotony
@solotony
покоряю пик Балмера
перед записью в файл проверяй установлено ли значение в ассоциативном массиве, а при записи - устанавливай это значение, используй isset

это самый тупой алгоритм кеширования, в реальных задачах возможно придется принимать в учет объем доступной памяти или делать интеллектуальное кеширование, опирающееся на какие-то параметры данных
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
$data = file("file.txt");
$uniq = array_unique($data);
file_put_contents("newfile.txt",implode("\n",$uniq));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы