Как при записи в файл пропускать дубль строки?

Подскажите как при записи в файл проверять чтоб не записывать дубли строки
вот так делаю
if (!isset($_POST['action']))
{
//форма
}
else
{
$error = "";
	if ( isset($_POST["nome"]) && !empty($_POST["nome"])) $nome = $_POST["nome"]; else $error .= "<li>Не введено название</li>";


	$nome = stripslashes($_POST['nome']);
	
 	if ( !empty($error) ) echo("<ul style='color:red;'>".$error."</ul>");
	else // записываем в файл
	{
		if (is_writeable("../data/bot.dat"))
	   	{

	    	$f = fopen("../data/bot.dat","a+");
	    	$write_text = "$nome \n";
	    	fputs($f,$write_text);
	    	fclose($f);
	    	echo("Файл добавлен.");
	   }
	   else echo("Не удалось записать в файл"); 
	}
	
}
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Batlab
PHP Senior | Python Middle | JS Junior
// Открываем файл и преобразовываем строки в массив
$arrayLines = file('file.txt');
if (in_array('дубль', $arrayLines) {
    // дубль есть
} else {
    // дубля нет
}
Ответ написан
Комментировать
@sagechild
программист php
Используйте следующий код в месте записи в файл:
if (is_writeable("../data/bot.dat"))
{
    // читаем файл в массив строк
    $fileRows = file("../data/bot.dat");

    $f = fopen("../data/bot.dat","a+");
    $write_text = "$nome \n";

    // если строка отсутствует в массиве строк файла, то добавляем ее в файл
    if (!in_array($write_text, $fileRows)) {
        fputs($f,$write_text);
    }

    fclose($f);
    echo("Файл добавлен.");
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы