Сокеты и CURL
Обновлено: 2012-11-07 15:07:00Иногда РНР-скрипты выступают не только с сервера, но и со стороны клиента, обращаясь к удаленным страницам. Самый простой способ реализации такого обращения — воспользоваться файловыми функциями.
Иногда РНР-скрипты выступают не только с сервера, но и со стороны клиента, обращаясь к удаленным страницам. Самый простой способ реализации такого обращения — воспользоваться файловыми функциями.
Помимо сокетов, обеспечивающих низкоуровневое обращение к серверу, РНР располагает специальным расширением CURL (Client URL Library).
В случае расширения CURL не требуется удаление HTTP-заголовков, возвращаемых сервером, так как библиотека их удаляет по умолчанию.
Часто при работе с данными удаленного хоста не требуется тело ответа, предсталяющее объемную HTML-страницу или файл: достаточно получить HTTP-заголовки, сообщающие полезную информацию о сервере и его требованиях для работы с его содержимым (установка cookie, сессий или требования произвести аутентификацию).
При обращении РНР-скрипта к страницам сайта при помощи файловых функций, сервер делает в переменную окружения USER_AGENT запись вида: РНР 5.8. В результате скрипт получит доступ к этому идентификатору через элемент суперглобального массива $_SERVER['USER_AGENT']. Однако этот способ проверки не может считаться универсальным, т.к. переменную окружения устанавливает клиент при помощи HTTP-заголовка User-Agent. Любой HTTP-заголовок, который передает клиент, может быть подделан.