Re: handling chunked input from php://stdin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Shawn McKenzie wrote:
whisperstream wrote:
I have a server running that receives xml formatted events from other
services I have no control over.  For certain events the transfer-encoding
is chunked.

I was just doing

$input = file_get_contents('php://stdin');

and this works well until there is chunked input.  Then I tried

$handle = fopen('php://input', "rb");
$input = '';
while (!feof($handle)) {
  $input .= fread($handle, 8192);
}
fclose($handle);

And that gives about the same result, has anyone else come across this and
how did they solve it?

Thanks in advance


There aren't really many examples around, but check
http_chunked_decode() from PECL.


simples!

function HTTPChunkDecoder( $chunkedData ) {
  $decodedData = '';
  do {
    $tempChunk = explode(chr(13).chr(10), $chunkedData, 2);
    $chunkSize = hexdec($tempChunk[0]);
    $decodedData .= substr($tempChunk[1], 0, $chunkSize);
    $chunkedData = substr($tempChunk[1], $chunkSize+2);
  } while (strlen($chunkedData) > 0);
  return $decodedData;
}

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux