Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP file get contents, http version

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?

like image 497
Tobrun Avatar asked Nov 30 '25 16:11

Tobrun


1 Answers

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.

like image 98
alganet Avatar answered Dec 02 '25 05:12

alganet