CrazyMode: о какой эффективности речь? Подключать при каждом запросе файл – да, это нормально. Обычно ещё этот файл с паролями исключают из версионирования (git/svn), а в версиях держат лишь темплейт .env.example где указано, какие значения должны быть заполнены в "боевом" .env
смотрите внимательнее, что возвращает ВК в ответ на неудачные запросы. Там может не быть поля "response", которое вы ожидаете, но присутствовать поле "error" с кодом и описанием ошибки.
если в обеих, то какова минимальная длина совпадающих фрагментов, чтобы считать, что да, совпадают "о вася пупкин великий художник" и "кто такой васяпупкин и почему мы о нем говорим?"
martuwka: сложно гадать, что мотивирует кого-то там так поступать. Для сравнения, методичная простановка 5 звёзд всем материалам вас не удивила бы? Практика показывает, что с ростом числа оценок, эффект от неадекватных индивидов полностью исчезает на общем фоне разнообразных оценок. Сужу по рейтингу, например, моего приложения ВК. Там тоже есть единицы, но их ничтожно мало по сравнению с 4–5 звёздами. Таким образом, я бы сосредоточил усилия на увеличении посещаемости, а не на борьбе с оценками от кого-то там одного.
В общем-то, всё элементарно: перебирать данные, и плюсовать 1 к той 15-минутке, в которую попадает время начала «удара». Вы же не хотите учитывать ещё и длительность удара, и заносить один сразу в две 15-минутки, если он начался в одной, а закончился уже в следующей?