Con PHP, ¿es posible enviar encabezados HTTP con file_get_contents()?
Sé que puede enviar el agente de usuario desde su php.iniarchivo. Sin embargo, puede también enviar otra información, como HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGEy HTTP_CONNECTIONcon 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
headeranulará eluser_agentelemento 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_contentsa una URL, uno debe usar elstream_create_contextfunció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_contentsy 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
fsockopenEsta 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_contentslo 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