Con PHP, ¿es posible enviar encabezados HTTP con file_get_contents()
?
Sé que puede enviar el agente de usuario desde su php.ini
archivo. Sin embargo, puede también enviar otra información, como HTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
y HTTP_CONNECTION
con file_get_contents()
?
¿O hay otra función que logrará esto?
php
http-headers
Marcus
fuente
fuente
file_get_contents()
? ¿especifica uno?ini_set('user_agent', 'SomeBrowser v42.0.4711');
vaya a user-agent.me y copie el suyo desde allí ... o edite php.ini para cambiarlo globalmenteEsto es lo que funcionó para mí (Dominic solo tenía una línea corta).
fuente
header
anulará eluser_agent
elemento de matriz, si se especifican ambos.Puede usar esta variable para recuperar encabezados de respuesta después de la
file_get_contents()
función.Código:
Salida:
fuente
Si.
Al llamar
file_get_contents
a una URL, uno debe usar elstream_create_context
función, que está bastante bien documentada en php.net.Esto se cubre más o menos exactamente en la siguiente página en php.net en la sección de comentarios del usuario: http://php.net/manual/en/function.stream-context-create.php
fuente
El uso de las bibliotecas php cURL probablemente sea el camino correcto, ya que esta biblioteca tiene más funciones que las simples
file_get_contents(...)
.Un ejemplo:
fuente
file_get_contents
y todavía tengo que encontrar un caso de uso que solo puede lograr con cURL.Si no necesita HTTPS y curl no está disponible en su sistema, puede usar
fsockopen
Esta función abre una conexión desde la que puede leer y escribir como lo haría con un identificador de archivo normal.
fuente
file_get_contents
lo que esta es una respuesta fuera del tema.Desafortunadamente, no parece que
file_get_contents()
realmente ofrezca ese grado de control. La extensión cURL suele ser la primera en aparecer, pero recomiendo encarecidamente la extensión PECL_HTTP ( http://pecl.php.net/package/pecl_http ) para solicitudes HTTP muy simples y directas. (es mucho más fácil trabajar con cURL)fuente