I have the following problem:
I have to write a PHP script that works as a client against another HTTP Server. This Server ignores the HTTP Connection:Close header and keeps the TCP connection open unless it is closed by the client. And here is my dilemma. I (the client) have to deciede when a HTTP request/response has finished and then close the connection. Simply use:
$data = file_get_contents($url);
.. won't work, as file_get_contents returns only if the connection timeout (default 30 seconds) has reached.
So I have to write my own read - loop like this (pseudo code):
$sock = fsockopen(...);
$data = '';
while($line = fgets($sock)) {
$data .= $line;
if(http_package_recieved()) {
break;
}
}
Unfortunately there is no Content-Length header in the response. My question is, how the function
http_package_recieved()
... should look like.
Greets Thorsten