3

I'm using the file_get_contents function to control a client, (e.g. http://ip:port/?light=on)

When using the corresponding command in the browser it works, when i use the same url in combination with file_get_contents function it doesnt work.

When i wireshark the requests i notice that the browser is using http/1.1 and file_get_contents is using http/1.0.

I believe that the version of http is the problem why my code is not working,

How can i change this version of http in de file_get_contents function? or work around it?

j0k
  • 22,600
  • 28
  • 79
  • 90
Tobrun
  • 18,291
  • 10
  • 66
  • 81

1 Answers1

5

You can set the HTTP version using a context:

$context = stream_context_create(array('http'=>array('protocol_version'=>'1.1')));
file_get_contents('http://ip:port/?light=on', false, $context);

See also the full list of context options http://www.php.net/manual/en/context.http.php

Note that if the server uses chunked encoding, you must use PHP 5.3 or superior.

alganet
  • 2,527
  • 13
  • 24