Com o PHP, é possível enviar cabeçalhos HTTP com file_get_contents()
?
Eu sei que você pode enviar o agente do usuário a partir do seu php.ini
arquivo. No entanto, você também pode enviar outras informações, como HTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
e HTTP_CONNECTION
com file_get_contents()
?
Ou existe outra função que realizará isso?
php
http-headers
Marcus
fonte
fonte
file_get_contents()
? especifica um?ini_set('user_agent', 'SomeBrowser v42.0.4711');
ir para user-agent.me e copiar seu a partir de lá .. ou editar php.ini para mudá-la globalmenteAqui está o que funcionou para mim (Dominic era apenas uma linha curta).
fonte
header
substituirá ouser_agent
elemento da matriz, se ambos forem especificados.Você pode usar essa variável para recuperar cabeçalhos de resposta após
file_get_contents()
função.Código:
Resultado:
fonte
Sim.
Ao chamar
file_get_contents
um URL, deve-se usar ostream_create_context
função, que está bastante bem documentada no php.net.Isso é abordado mais ou menos exatamente na página a seguir em php.net na seção de comentários do usuário: http://php.net/manual/en/function.stream-context-create.php
fonte
Usar as bibliotecas php cURL provavelmente será o caminho certo a seguir, pois essa biblioteca possui mais recursos do que o simples
file_get_contents(...)
.Um exemplo:
fonte
file_get_contents
e ainda preciso encontrar um Caso de Uso que você só pode obter com cURL.Se você não precisar de HTTPS e o curl não estiver disponível no seu sistema, poderá usar
fsockopen
Esta função abre uma conexão a partir da qual você pode ler e escrever, como faria com um identificador de arquivo normal.
fonte
file_get_contents
então essa é uma resposta fora do tópico.Infelizmente, não parece
file_get_contents()
oferecer realmente esse grau de controle. A extensão cURL é geralmente a primeira a aparecer, mas eu recomendo a extensão PECL_HTTP ( http://pecl.php.net/package/pecl_http ) para solicitações HTTP muito simples e diretas. (é muito mais fácil trabalhar do que cURL)fonte