wppaste
WordPress

WP_Http_Encoding

Since
2.8.0
Source
wp-includes/class-wp-http-encoding.php:17
Core class used to implement deflate and gzip transfer encoding support for HTTP requests.

Description

Includes RFC 1950, RFC 1951, and RFC 1952.

Compatibility

WordPress
since 2.8.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Hooks and filters fired · 1

Every hook that fires from inside WP_Http_Encoding, in the order it appears in the class, grouped by the method that fires it.

Methods · 7

Source code

#[AllowDynamicProperties]class WP_Http_Encoding { 	/**	 * Compress raw string using the deflate format.	 *	 * Supports the RFC 1951 standard.	 *	 * @since 2.8.0	 *	 * @param string $raw      String to compress.	 * @param int    $level    Optional. Compression level, 9 is highest. Default 9.	 * @param string $supports Optional, not used. When implemented it will choose	 *                         the right compression based on what the server supports.	 * @return string|false Compressed string on success, false on failure.	 */	public static function compress( $raw, $level = 9, $supports = null ) {		return gzdeflate( $raw, $level );	} 	/**	 * 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.0	 *	 * @param string $compressed String to decompress.	 * @param int    $length     The optional length of the compressed data.	 * @return string|false Decompressed string on success, false on failure.	 */	public static function decompress( $compressed, $length = null ) { 		if ( empty( $compressed ) ) {			return $compressed;		} 		$decompressed = @gzinflate( $compressed );		if ( false !== $decompressed ) {			return $decompressed;		} 		$decompressed = self::compatible_gzinflate( $compressed );		if ( false !== $decompressed ) {			return $decompressed;		} 		$decompressed = @gzuncompress( $compressed );		if ( false !== $decompressed ) {			return $decompressed;		} 		if ( function_exists( 'gzdecode' ) ) {			$decompressed = @gzdecode( $compressed ); 			if ( false !== $decompressed ) {				return $decompressed;			}		} 		return $compressed;	} 	/**	 * Decompression of deflated string while staying compatible with the majority of servers.	 *	 * Certain Servers will return deflated data with headers which PHP's gzinflate()	 * function cannot handle out of the box. The following function has been created from	 * various snippets on the gzinflate() PHP documentation.	 *	 * Warning: Magic numbers within. Due to the potential different formats that the compressed	 * data may be returned in, some "magic offsets" are needed to ensure proper decompression	 * takes place. For a simple pragmatic way to determine the magic offset in use, see:	 * https://core.trac.wordpress.org/ticket/18273	 *	 * @since 2.8.1	 *

Changelog

Introduced in 2.8.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.9.7 tag, from src/wp-includes/class-wp-http-encoding.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.