Мне нужно выполнить запрос на получение и отправить вместе с ним заголовки. Что я могу использовать для этого?
Главный заголовок, который мне нужно установить, – это браузер. Есть простой способ сделать это?
Если вы используете cURL, вы можете использовать curl_setopt ($handle, CURLOPT_USERAGENT, 'browser description')
чтобы определить заголовок пользователя-агента запроса.
Если вы используете file_get_contents
, проверьте эту настройку примера на странице man для 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);
Если вы запрашиваете страницу, используйте 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);
Вы можете использовать функцию header
для этого, например:
header('Location: http://www.example.com?var=some_value');
Обратите внимание, что:
Помните, что header () должен быть вызван до отправки любого фактического результата либо с помощью обычных тегов HTML, пустых строк в файле, либо из PHP. Очень распространенная ошибка для чтения кода с функциями include () или require (), функций или другой функции доступа к файлам, а также пробелы или пустые строки, которые выводятся перед вызовом header (). Та же проблема существует при использовании одного файла PHP / HTML.