За последние 24 часа нас посетили 49926 программистов и 1730 роботов. Сейчас ищут 620 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем Bridun, 6 ноя 2018.

Метки:
  1. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    Подскажите как при записи в файл пропускать или не записывать в файл пустое или дублирующее значение ?

    файл имеет запись

    1<|>kv_aCpp7YZ8<|>Елена<|>+380676091642
    2<|>njSYaVpQvSw<|>Андрей<|>
    3<|>7XY33DSryp0<|>Виталий<|>+79605373423
    4<|>zk2opj8xOSo<|>Aigul<|>+77027637790
    5<|>3rZZFZVJGrM<|>Ярослав<|>
    6<|>zk2opj8xOgj<|>Aigul<|>+77027637790

    Делаю вот так но доконца незнаю как

    PHP:
    1. $list = file("number.csv", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    2.   $phone_list = array_map('trim', $list);
    3.     if (is_writeable("number.csv")){              
    4.     $f = fopen("number.csv","a+");
    5.       $write_text = "$max<|>$video<|>$Title<|>$phone \n";
    6.  
    7.     if (in_array($write_text, $phone_list)) {
    8.  
    9.     }  else {
    10.    fputs($f,$write_text);
    11.      fclose($f);
    12.  
    13.   }
    14.   }
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Bridun может пора забыть о файлах и начать использовать БД?
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @Valick ну начинается. Сначала бд использовать а потом что? Классы? ООП? СОЛИД? Переменные? Комментарии? Беспредел)
     
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @nospiou, ну мы то с тобой знаем, что с БД работать на порядок проще, чем с файлами.
     
  5. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    @Valick, lдело втом что файл нужен
     
  6. Walk

    Walk Активный пользователь

    С нами с:
    7 сен 2008
    Сообщения:
    452
    Симпатии:
    86
    Записей много?

    Если не миллионы - я бы записывал данные вначале в базу, а потом из базы формировал файл.
     
  7. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    нет может по 1000
    --- Добавлено ---
    вся эта дрибидень на файла чтоб проще было и шо для одного лиш базу делать поэтому и пытаюсь с мастерить велосипед
    --- Добавлено ---
    @Walk, подскажите как это лепить, мне тут советуют чтоб записать в файл а потом перезаписать удалив повторы а это еще нужно знать как
     
  8. Walk

    Walk Активный пользователь

    С нами с:
    7 сен 2008
    Сообщения:
    452
    Симпатии:
    86
    Вы хотите чтобы я код написал?)

    В каком направлении подумать (как бы я сделал) уже сказал:
    1. Храните данные в базе. В базе колонке без проблем задается параметр UNIQUE и повторяющиеся значения туда физически не вставить (хотя, конечно же, не нужно ждать ошибки уровня базы, надо валидировать на уровне обработки запроса)
    2. Затем, из базы формируете файл

    Можно и так. Только хранение данных в файле - это костыль. Данные нужно хранить в бд, а затем конвертировать в нужный формат - страницу сайта/файл/xml/чего угодно.
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В итоге, чтобы "было проще" городим велосипеды, костыли, магию для того, чтобы заставить файл строить из себя БД, в то время как на уровне БД такие задачи решаются в одну команду.
    --- Добавлено ---
    Можно и на уровне базы, в этом нет ничего криминального. Но зависит от конкретной ситуации, что удобнее.
     
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Что бы можно было проверить дубликаты нужно весь все строки сохранять в массив и в массиве уже искать дубли. Ну а сохранять в самом конце