С PHP, это возможный отправить HTTP-заголовки с file_get_contents()
?
Я знаю, что можно отправить агент пользователя от Вашего php.ini
файл. Однако можете Вы также отправлять другую информацию такой как HTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
, и HTTP_CONNECTION
с file_get_contents()
?
Или есть ли другая функция, которая выполнит это?
На самом деле, при дальнейшем чтении на функции File_Get_Contents ()
:
// Create a stream
$opts = [
"http" => [
"method" => "GET",
"header" => "Accept-language: en\r\n" .
"Cookie: foo=bar\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 PHP, вероятно, будет правильным способом пойти, так как эта библиотека имеет больше возможностей, чем простой File_Get_Contents (...)
.
Пример:
<?php
$ch = curl_init();
$headers = array('HTTP_ACCEPT: Something', 'HTTP_ACCEPT_LANGUAGE: fr, en, da, nl', 'HTTP_CONNECTION: Something');
curl_setopt($ch, CURLOPT_URL, "http://localhost"); # URL to post to
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); # return into a variable
curl_setopt($ch, CURLOPT_HTTPHEADER, $header ); # custom headers, see above
$result = curl_exec( $ch ); # run!
curl_close($ch);
?>
К сожалению, он не похож на file_get_contents ()
действительно предлагает эту степень контроля. Расширение CURL обычно является первым, кто подходит, но я очень рекомендую расширение PECL_HTTP ( http://pecl.php.net/package/pecl_http ) для очень простых и простых http-запросов. (Гораздо проще работать с чем скручиваться)
Если вам не нужно HTTPS и CURL недоступны в вашей системе, вы можете использовать FSOCCOPEN
Эта функция открывает соединение, с которого вы можете прочитать, так и Напишите, как будто вы будете делать с обычной обработкой файлов.