Я должен выполнить получить запрос и отправить заголовки наряду с ним. Что я могу использовать, чтобы сделать это?
Основной заголовок, который я должен установить, является браузером один. Существует ли простой способ сделать это?
Если вы используете cURL, вы можете использовать curl_setopt ($ handle, CURLOPT_USERAGENT, 'описание браузера')
для определения заголовка пользовательского агента запроса.
Если вы используете file_get_contents
, ознакомьтесь с этой настройкой примера на странице руководства для file_get_contents :
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n" .
"User-agent: BROWSER-DESCRIPTION-HERE\r\n"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
Вы можете использовать для этого функцию header
, например:
header('Location: http://www.example.com?var=some_value');
Обратите внимание, что:
Помните, что header () должен вызываться перед отправкой любого фактического вывода, либо обычными тегами HTML, пусто строк в файле или из PHP. Это очень распространенная ошибка чтения кода с помощью include () или require (), functions или другая функция доступа к файлам и пробелы или пустые строки, которые выводятся перед вызовом header (). Одинаковый проблема существует при использовании одного Файл PHP / HTML.
Если вы запрашиваете страницу, используйте cURL .
Чтобы установить заголовки (в данном случае заголовок User-Agent
в HTTP-запросе, вы должны использовать следующий синтаксис:
<?php
$curl_h = curl_init('http://www.example.com/');
curl_setopt($curl_h, CURLOPT_HTTPHEADER,
array(
'User-Agent: NoBrowser v0.1 beta',
)
);
# do not output, but store to variable
curl_setopt($curl_h, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl_h);