Отправить HTTP-запрос от PHP, не ожидая ответа?
Я хочу получить HTTP-запрос GET от PHP. Пример:
http://tracker.example.com?product_number=5230&price=123.52
Идея состоит в том, чтобы выполнять веб-аналитику на стороне сервера: вместо отправки информации отслеживания из JavaScript на сервер, сервер отправляет информацию отслеживания непосредственно на другой сервер.
Требования:
Запрос должен занимать как можно меньше времени, чтобы не задерживать обработку страницы PHP.
Ответ отtracker.example.com
не нужно проверять. В качестве примеров приведены возможные ответы отtracker.example.com
:
200: Это нормально, но проверять это не нужно.
404: Не повезло, но - опять же - проверять это не нужно.
301: Хотя перенаправление будет уместным, оно задержит обработку страницы PHP, так что не делайте этого.
Короче говоря:Все ответы могут быть отброшены.
Идеи для решений:
В удаленном ответе кто-то предложил вызвать командную строкулокон из PHP в процессе оболочки. Это кажется хорошей идеей, только я не знаю, стоит ли делать много процессов оболочки при большой нагрузке.
я нашелPHP-гапакет для выполнения Google Analytics на стороне сервера из PHP. На странице проекта упоминается:«Может быть настроен на использование [...] неблокирующих запросов». До сих пор я не нашел времени, чтобы исследовать, какой метод использует php-ga для внутреннего использования, но этот метод может быть таким!
В двух словах: Каково лучшее решение для общего отслеживания / анализа на стороне сервера из PHP.