Для правильного вопроса надо знать половину ответа
Ну да. Сгенерировать список случайных значений, отсортировать их по возрастанию и взять только последнее. И что это 1 и 2 никогда не попадаются? И почему это 10 чаще всего выпадает?
Замените весь этот бред на одну строку. return $items[rand(0, count($items) - 1)];
Для правильного вопроса надо знать половину ответа
В режиме webhook Telegram повторяет сообщение раз в минуту, пока не получит ответ со статусом "200 OK".
Если ваш скрипт не укладывается в минуту, то сообщения будут приходить постоянно.
Для правильного вопроса надо знать половину ответа
Читайте документацию на Telegram Bot API. Там указано, какие поля являются опциональными. Добавляйте обработку таких полей, например через null-коалесценцию:
Для правильного вопроса надо знать половину ответа
Вангую, что вы пытаетесь работать со строками UTF-8 используя стандартные функции (strlen, substr и т.п.). Сие в корне неверно. Используйте библиотеку mbstring и функции с префиксом mb_.
Для правильного вопроса надо знать половину ответа
Вариант первый, фантастический. Научиться самому вычислять проценты. Научиться писать ботов для Телеграма. Написать бота, вычисляющего проценты.
Вариант второй, реалистичный. Нанять разработчика для написания Телеграм-бота, вычисляющего проценты.
Для правильного вопроса надо знать половину ответа
Отмечаете у себя в БД, что в диалоге с данным пользователем был задан конкретный вопрос. При приходе от пользователя сообщения проверяете, если до этого был задан вопрос, то считаете сообщение ответом на него. Затем сбрасываете признак заданного вопроса в БД.
И подучите русский язык. "Выберете на кнопках нужную"... Во-первых - выберите. Во-вторых нужную кому?, кого?, что?
Для правильного вопроса надо знать половину ответа
Чтобы понять, к чему относится ответ пользователя, нужно в БД сохранить статус диалога, например "задан вопрос №3" и при приходе сообщения проверять этот статус.