0) { $chunkend = strpos($buffer, "\r\n", $chunkstart + $chunk_size); // just in case we got a broken connection if ($chunkend == false) { $chunk = substr($buffer, $chunkstart); // append chunk-data to entity-body $new .= $chunk; $length += strlen($chunk); break; } // read chunk-data and crlf $chunk = substr($buffer, $chunkstart, $chunkend - $chunkstart); // append chunk-data to entity-body $new .= $chunk; // length := length + chunk-size $length += strlen($chunk); // read chunk-size and crlf $chunkstart = $chunkend + 2; $chunkend = strpos($buffer, "\r\n", $chunkstart) + 2; if ($chunkend == false) { break; //just in case we got a broken connection } $temp = substr($buffer, $chunkstart, $chunkend - $chunkstart); $chunk_size = hexdec(trim($temp)); $chunkstart = $chunkend; } return $new; } }