/** * Decompression of deflated string. * * Will attempt to decompress using the RFC 1950 standard, and if that fails * then the RFC 1951 standard deflate will be attempted. Finally, the RFC * 1952 standard gzip decode will be attempted. If all fail, then the * original compressed string will be returned. * * @since 2.8 * * @param string $compressed String to decompress. * @param int $length The optional length of the compressed data. * @return string|bool False on failure. */ public static function decompress($compressed, $length = null) { if (empty($compressed)) { return $compressed; } if (false !== ($decompressed = @gzinflate($compressed))) { return $decompressed; } if (false !== ($decompressed = Encoding::compatible_gzinflate($compressed))) { return $decompressed; } if (false !== ($decompressed = @gzuncompress($compressed))) { return $decompressed; } if (function_exists('gzdecode')) { $decompressed = @gzdecode($compressed); if (false !== $decompressed) { return $decompressed; } } return $compressed; }