FanatPHP,
На основании айди, что у меня есть в бд, я в цикле делаю курлом http запрос к апи поставщика. Получаю оттуда json с данными, преобразую его в массив и начинаю раскладывать этот массив по таблицам в бд.
Всего четыре таблицы. С тремя из них проблем нету, но в четвёртую приходит несколько миллионов записей, и большая часть из них повтор. Мне надо перед записью в бд, каким-то образом отсеять повторы.
Поэтому, я на первой итерации записываю в таблицу бд данные, а на следующих итерациях, выбираю из бд уже записанное, сравниваю их с новыми, при помощи цикла и in_array, убираю повторы, и записываю обратно в базу новую порцию. Дальше цикл повторяется, до тех пор, пока исходные данные не закончатся.
Как-то так...
Тут такое дело. Я получаю от поставщика данные - порядка миллиона записей. Но мне сохранить в базу надо только уникальные. Проверяю я их при помощи in_array. Но когда величина массива доходит до нескольких сотен тысяч элементов, всё ломается. А как можно по другому записывать в бд только уникальные данные?
Adamos, мне не надо отправлять форму аяксом. И джава скрипт не подходит, к сожалению. Всё таки нужно решение на php. Странно, что такая распространенная задача, как редирект через заданное время, не имеет нормального решения.
Правильно. 02:00 меньше 10:00. Условие не выполнится. Попробуй инвертировать логику. Используй не время работы бота с 10 утра до 02 ночи, а время неработы. С 02:01 до 09:59.
Если уж так надо, чтобы прямо без капчи, то можно попробовать что-то типа honeypot. То есть сделать скрытые поля, по которым так любят ходить боты. Если скрытое поле заполнено, то такое сообщение не отправлять. Ну и добавить ссылку в скрытом поле, и банить тех, кто по ней перешёл. И так далее, и тому подобное. А лучше наверно использовать invisible reCAPTCHA.