Requests::decode_chunked() WordPress Method
This Wordpress method allows you to decode a "chunked" string of data. Chunked data is data that is broken up into small pieces, typically of a fixed size. This method takes a string of chunked data and decodes it into a single string.
Requests::decode_chunked( string $data ) #
Decoded a chunked body as per RFC 2616
Description
See also
Parameters
- $data
(string)(Required)Chunked body
Return
(string) Decoded body
Source
File: wp-includes/class-requests.php
protected static function decode_chunked($data) { if (!preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', trim($data))) { return $data; } $decoded = ''; $encoded = $data; while (true) { $is_chunked = (bool) preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', $encoded, $matches); if (!$is_chunked) { // Looks like it's not chunked after all return $data; } $length = hexdec(trim($matches[1])); if ($length === 0) { // Ignore trailer headers return $decoded; } $chunk_length = strlen($matches[0]); $decoded .= substr($encoded, $chunk_length, $length); $encoded = substr($encoded, $chunk_length + $length + 2); if (trim($encoded) === '0' || empty($encoded)) { return $decoded; } } // We'll never actually get down here // @codeCoverageIgnoreStart }
Expand full source codeCollapse full source codeView on TracView on GitHub