PHP file_get_contents () и устанавливающий заголовки запроса

С PHP, это возможный отправить HTTP-заголовки с file_get_contents() ?

Я знаю, что можно отправить агент пользователя от Вашего php.ini файл. Однако можете Вы также отправлять другую информацию такой как HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE, и HTTP_CONNECTION с file_get_contents() ?

Или есть ли другая функция, которая выполнит это?

116
задан marvinIsSacul 12 November 2019 в 11:02
поделиться

4 ответа

На самом деле, при дальнейшем чтении на функции 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);

Вы можете следовать этой модели, чтобы достичь того, что вы ищете, я не терял это, хотя. (И если это не сработает, не стесняйтесь проверить мой другой ответ)

296
ответ дан 24 November 2019 в 02:11
поделиться

Использование библиотек 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);
?>
-1
ответ дан 24 November 2019 в 02:11
поделиться

К сожалению, он не похож на file_get_contents () действительно предлагает эту степень контроля. Расширение CURL обычно является первым, кто подходит, но я очень рекомендую расширение PECL_HTTP ( http://pecl.php.net/package/pecl_http ) для очень простых и простых http-запросов. (Гораздо проще работать с чем скручиваться)

-3
ответ дан 24 November 2019 в 02:11
поделиться

Если вам не нужно HTTPS и CURL недоступны в вашей системе, вы можете использовать FSOCCOPEN

Эта функция открывает соединение, с которого вы можете прочитать, так и Напишите, как будто вы будете делать с обычной обработкой файлов.

-1
ответ дан 24 November 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: