HTTP заголовки, отправленные PHP

0

Я использую CURL и file_get_contents, чтобы узнать основную разницу между запросом сервера для страницы и запросом браузера (органическим).

Я запрашиваю страницу PHPINFO в обоих направлениях и обнаружил, что она дает разные результаты в разных случаях.

Например, когда я пользуюсь браузером, PHPINFO показывает это: _SERVER ["HTTP_CACHE_CONTROL"] no-cache Эта информация отсутствует, когда я запрашиваю одну и ту же страницу через PHP.

Мой CURL:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://www.example.com/phpinfo.php");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0");
    curl_setopt($ch, CURLOPT_INTERFACE, $testIP);
    $output = curl_exec($ch);
    curl_close($ch);

Мой файл_get_contents:

$opts = array(
'socket' => array('bindto' => 'xxx.xx.xx.xx:0'),
'method'  => 'GET',
'user_agent '  => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0", // this doesn't work
'header' => array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8')
);

Моя цель: Сделать запрос PHP похожим на запрос браузера.

  • 0
    Почему вы хотите, чтобы ваши запросы выглядели как запросы браузера?
  • 0
    @Halcyon Это сделано для того, чтобы серверы не обрабатывали мои запросы иначе, чем обычный запрос браузера.
Показать ещё 8 комментариев
Теги:
curl
header
file-get-contents

1 ответ

-1
Лучший ответ

одним из возможных способов обнаружения сервером вы PHP-код, а не браузером, проверьте ваш файл cookie. с запросом php curl на сервер один раз и вставлять cookie, который вы получаете к следующему запросу. проверьте здесь: http://docstore.mik.ua/orelly/webprog/pcook/ch11_04.htm другой способ, которым сервер может понять, что вы робот (php-код) - это HTTP-заголовок реферирования. вы можете узнать больше здесь: http://en.wikipedia.org/wiki/HTTP_referer

Ещё вопросы

Сообщество Overcoder
Наверх
Меню