Requests::decompress( string $data ): string

In this article

Decompress an encoded body

Description

Implements gzip, compress and deflate. Guesses which it is by attempting to decode.

Parameters

$datastringrequired
Compressed data in one of the above formats

Return

string Decompressed string

Source

public static function decompress($data) {
	if (is_string($data) === false) {
		throw InvalidArgument::create(1, '$data', 'string', gettype($data));
	}

	if (trim($data) === '') {
		// Empty body does not need further processing.
		return $data;
	}

	$marker = substr($data, 0, 2);
	if (!isset(self::$magic_compression_headers[$marker])) {
		// Not actually compressed. Probably cURL ruining this for us.
		return $data;
	}

	if (function_exists('gzdecode')) {
		$decoded = @gzdecode($data);
		if ($decoded !== false) {
			return $decoded;
		}
	}

	if (function_exists('gzinflate')) {
		$decoded = @gzinflate($data);
		if ($decoded !== false) {
			return $decoded;
		}
	}

	$decoded = self::compatible_gzinflate($data);
	if ($decoded !== false) {
		return $decoded;
	}

	if (function_exists('gzuncompress')) {
		$decoded = @gzuncompress($data);
		if ($decoded !== false) {
			return $decoded;
		}
	}

	return $data;
}

User Contributed Notes

You must log in before being able to contribute a note or feedback.