PHP 8.2.29
Preview: class-wp-http-encoding.php Size: 6.53 KB
/home/medyaist/akmarmaratekstil.com.tr/wp-includes/class-wp-http-encoding.php
<?php
/**
 * HTTP API: WP_Http_Encoding class
 *
 * @package WordPress
 * @subpackage HTTP
 * @since 4.4.0
 */

/**
 * Core class used to implement deflate and gzip transfer encoding support for HTTP requests.
 *
 * Includes RFC 1950, RFC 1951, and RFC 1952.
 *
 * @since 2.8.0
 */
#[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
	 *
	 * @link https://core.trac.wordpress.org/ticket/18273
	 * @link https://www.php.net/manual/en/function.gzinflate.php#70875
	 * @link https://www.php.net/manual/en/function.gzinflate.php#77336
	 *
	 * @param string $gz_data String to decompress.
	 * @return string|false Decompressed string on success, false on failure.
	 */
	public static function compatible_gzinflate( $gz_data ) {

		// Compressed data might contain a full header, if so strip it for gzinflate().
		if ( str_starts_with( $gz_data, "\x1f\x8b\x08" ) ) {
			$i   = 10;
			$flg = ord( substr( $gz_data, 3, 1 ) );
			if ( $flg > 0 ) {
				if ( $flg & 4 ) {
					list($xlen) = unpack( 'v', substr( $gz_data, $i, 2 ) );
					$i          = $i + 2 + $xlen;
				}
				if ( $flg & 8 ) {
					$i = strpos( $gz_data, "\0", $i ) + 1;
				}
				if ( $flg & 16 ) {
					$i = strpos( $gz_data, "\0", $i ) + 1;
				}
				if ( $flg & 2 ) {
					$i = $i + 2;
				}
			}
			$decompressed = @gzinflate( substr( $gz_data, $i, -8 ) );
			if ( false !== $decompressed ) {
				return $decompressed;
			}
		}

		// Compressed data from java.util.zip.Deflater amongst others.
		$decompressed = @gzinflate( substr( $gz_data, 2 ) );
		if ( false !== $decompressed ) {
			return $decompressed;
		}

		return false;
	}

	/**
	 * What encoding types to accept and their priority values.
	 *
	 * @since 2.8.0
	 *
	 * @param string $url
	 * @param array  $args
	 * @return string Types of encoding to accept.
	 */
	public static function accept_encoding( $url, $args ) {
		$type                = array();
		$compression_enabled = self::is_available();

		if ( ! $args['decompress'] ) { // Decompression specifically disabled.
			$compression_enabled = false;
		} elseif ( $args['stream'] ) { // Disable when streaming to file.
			$compression_enabled = false;
		} elseif ( isset( $args['limit_response_size'] ) ) { // If only partial content is being requested, we won't be able to decompress it.
			$compression_enabled = false;
		}

		if ( $compression_enabled ) {
			if ( function_exists( 'gzinflate' ) ) {
				$type[] = 'deflate;q=1.0';
			}

			if ( function_exists( 'gzuncompress' ) ) {
				$type[] = 'compress;q=0.5';
			}

			if ( function_exists( 'gzdecode' ) ) {
				$type[] = 'gzip;q=0.5';
			}
		}

		/**
		 * Filters the allowed encoding types.
		 *
		 * @since 3.6.0
		 *
		 * @param string[] $type Array of what encoding types to accept and their priority values.
		 * @param string   $url  URL of the HTTP request.
		 * @param array    $args HTTP request arguments.
		 */
		$type = apply_filters( 'wp_http_accept_encoding', $type, $url, $args );

		return implode( ', ', $type );
	}

	/**
	 * What encoding the content used when it was compressed to send in the headers.
	 *
	 * @since 2.8.0
	 *
	 * @return string Content-Encoding string to send in the header.
	 */
	public static function content_encoding() {
		return 'deflate';
	}

	/**
	 * Whether the content be decoded based on the headers.
	 *
	 * @since 2.8.0
	 *
	 * @param array|string $headers All of the available headers.
	 * @return bool
	 */
	public static function should_decode( $headers ) {
		if ( is_array( $headers ) ) {
			if ( array_key_exists( 'content-encoding', $headers ) && ! empty( $headers['content-encoding'] ) ) {
				return true;
			}
		} elseif ( is_string( $headers ) ) {
			return ( stripos( $headers, 'content-encoding:' ) !== false );
		}

		return false;
	}

	/**
	 * Whether decompression and compression are supported by the PHP version.
	 *
	 * Each function is tested instead of checking for the zlib extension, to
	 * ensure that the functions all exist in the PHP version and aren't
	 * disabled.
	 *
	 * @since 2.8.0
	 *
	 * @return bool
	 */
	public static function is_available() {
		return ( function_exists( 'gzuncompress' ) || function_exists( 'gzdeflate' ) || function_exists( 'gzinflate' ) );
	}
}

Directory Contents

Dirs: 29 × Files: 163
Name Size Perms Modified Actions
- drwxr-xr-x 2025-12-17 05:12:27
Edit Download
assets DIR
- drwxr-xr-x 2025-12-17 05:12:27
Edit Download
- drwxr-xr-x 2026-01-16 13:01:18
Edit Download
- drwxr-xr-x 2026-01-16 08:25:31
Edit Download
- drwxr-xr-x 2026-01-15 23:48:34
Edit Download
blocks DIR
- drwxr-xr-x 2025-12-17 05:12:32
Edit Download
- drwxr-xr-x 2025-12-12 05:55:14
Edit Download
css DIR
- drwxr-xr-x 2025-12-17 05:12:36
Edit Download
customize DIR
- drwxr-xr-x 2026-01-15 23:52:23
Edit Download
fonts DIR
- drwxr-xr-x 2025-12-17 05:12:37
Edit Download
html-api DIR
- drwxr-xr-x 2026-01-15 23:54:33
Edit Download
ID3 DIR
- drwxr-xr-x 2025-12-17 05:14:31
Edit Download
images DIR
- drwxr-xr-x 2026-01-12 07:21:42
Edit Download
- drwxr-xr-x 2026-01-15 23:54:53
Edit Download
IXR DIR
- drwxr-xr-x 2026-01-16 12:43:37
Edit Download
js DIR
- drwxr-xr-x 2025-12-17 05:13:12
Edit Download
l10n DIR
- drwxr-xr-x 2026-01-15 22:30:47
Edit Download
- drwxr-xr-x 2025-12-12 05:55:26
Edit Download
PHPMailer DIR
- drwxr-xr-x 2026-01-12 21:05:56
Edit Download
pomo DIR
- drwxr-xr-x 2026-01-15 22:31:08
Edit Download
Requests DIR
- drwxr-xr-x 2025-12-12 05:56:24
Edit Download
rest-api DIR
- drwxr-xr-x 2026-01-15 22:31:16
Edit Download
SimplePie DIR
- drwxr-xr-x 2025-12-17 05:14:31
Edit Download
sitemaps DIR
- drwxr-xr-x 2025-12-12 05:56:28
Edit Download
- drwxr-xr-x 2025-12-12 05:56:30
Edit Download
- drwxr-xr-x 2025-12-12 05:55:31
Edit Download
Text DIR
- drwxr-xr-x 2025-12-17 05:12:27
Edit Download
- drwxr-xr-x 2026-01-15 22:32:02
Edit Download
widgets DIR
- drwxr-xr-x 2026-01-11 08:42:40
Edit Download
7.80 KB lrw-r--r-- 2025-12-17 05:13:18
Edit Download
18.94 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
7.35 KB lrw-r--r-- 2025-12-17 05:13:21
Edit Download
12.90 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
61.02 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
112.05 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
42.63 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
55.71 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
6.61 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
2.18 KB lrw-r--r-- 2025-12-12 05:55:02
Edit Download
13.89 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
17.46 KB lrw-r--r-- 2025-12-17 05:13:22
Edit Download
5.14 KB lrw-r--r-- 2025-12-12 05:55:02
Edit Download
16.70 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
8.28 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
2.92 KB lrw-r--r-- 2025-12-17 05:13:20
Edit Download
1.32 KB lrw-r--r-- 2025-12-12 05:55:02
Edit Download
4.60 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
11.62 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
2.50 KB lrw-r--r-- 2025-12-17 05:13:20
Edit Download
1.97 KB lrw-r--r-- 2025-12-17 05:13:31
Edit Download
11.25 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
5.32 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
10.60 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
67.84 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
6.34 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
5.49 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
1.99 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
7.02 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
4.91 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
16.86 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
24.23 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
3.97 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
47.66 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
9.22 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
25.51 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
198.38 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
56.65 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
10.46 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
10.95 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
29.26 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
70.91 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
35.30 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
15.02 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
2.57 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
39.83 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
70.64 KB lrw-r--r-- 2025-12-17 05:13:31
Edit Download
15.56 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
7.33 KB lrw-r--r-- 2025-12-12 05:55:03
Edit Download
253 B lrw-r--r-- 2025-12-17 05:13:19
Edit Download
7.96 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
3.23 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
969 B lrw-r--r-- 2025-12-17 05:13:28
Edit Download
16.28 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
7.22 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
12.95 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
6.53 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
3.42 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
5.84 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
1.97 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
4.30 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
2.91 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
16.46 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
40.60 KB lrw-r--r-- 2025-12-17 05:13:19
Edit Download
20.22 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
36.11 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
17.01 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
7.27 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
6.62 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
16.49 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
1.79 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
29.82 KB lrw-r--r-- 2025-12-17 05:13:18
Edit Download
6.67 KB lrw-r--r-- 2025-12-12 05:55:04
Edit Download
8.98 KB lrw-r--r-- 2025-12-17 05:13:31
Edit Download
19.42 KB lrw-r--r-- 2025-12-17 05:13:21
Edit Download
12.01 KB lrw-r--r-- 2025-12-17 05:13:22
Edit Download
17.11 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
6.74 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
30.93 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
4.99 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
4.25 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
24.72 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
29.96 KB lrw-r--r-- 2025-12-17 05:13:19
Edit Download
6.34 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
159.91 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
6.72 KB lrw-r--r-- 2025-12-12 05:55:05
Edit Download
10.92 KB lrw-r--r-- 2025-12-12 05:55:05
Edit Download
4.77 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
3.38 KB lrw-r--r-- 2025-12-12 05:55:05
Edit Download
11.18 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
62.19 KB lrw-r--r-- 2025-12-17 05:13:20
Edit Download
2.46 KB lrw-r--r-- 2025-12-12 05:55:05
Edit Download
9.17 KB lrw-r--r-- 2025-12-17 05:13:20
Edit Download
31.13 KB lrw-r--r-- 2025-12-17 05:13:19
Edit Download
33.38 KB lrw-r--r-- 2025-12-17 05:13:22
Edit Download
7.15 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
3.47 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
1.87 KB lrw-r--r-- 2025-12-17 05:13:33
Edit Download
30.91 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
7.29 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
7.35 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
11.86 KB lrw-r--r-- 2025-12-17 05:13:19
Edit Download
19.12 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
18.12 KB lrw-r--r-- 2025-12-17 05:13:31
Edit Download
39.99 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
5.17 KB lrw-r--r-- 2025-12-12 05:55:05
Edit Download
979 B lrw-r--r-- 2025-12-17 05:13:24
Edit Download
18.44 KB lrw-r--r-- 2025-12-17 05:13:22
Edit Download
10.24 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
1.77 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
34.90 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
7.19 KB lrw-r--r-- 2025-12-17 05:13:21
Edit Download
160.50 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
64.27 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
27.95 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
4.69 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
2.94 KB lrw-r--r-- 2025-12-17 05:13:26
Edit Download
13.01 KB lrw-r--r-- 2025-12-17 05:13:19
Edit Download
3.27 KB lrw-r--r-- 2025-12-12 05:55:06
Edit Download
18.00 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
210.40 KB lrw-r--r-- 2025-12-17 05:13:20
Edit Download
25.86 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
373 B lrw-r--r-- 2025-12-12 05:55:06
Edit Download
343 B lrw-r--r-- 2025-12-12 05:55:06
Edit Download
100.73 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
11.10 KB lrw-r--r-- 2025-12-17 05:13:31
Edit Download
37.02 KB lrw-r--r-- 2025-12-17 05:13:22
Edit Download
2.24 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
38.00 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
4.02 KB lrw-r--r-- 2025-12-12 05:55:07
Edit Download
94.42 KB lrw-r--r-- 2026-02-27 06:16:15
Edit Download
5.38 KB lrw-r--r-- 2025-12-17 05:13:28
Edit Download
1.16 KB lrw-r--r-- 2025-12-12 05:55:07
Edit Download
4.04 KB lrw-r--r-- 2025-12-17 05:13:22
Edit Download
9.56 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
281.84 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
14.95 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
8.44 KB lrw-r--r-- 2025-12-17 05:13:23
Edit Download
20.71 KB lrw-r--r-- 2025-12-17 05:13:19
Edit Download
5.72 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
81.72 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
25.24 KB lrw-r--r-- 2025-12-17 05:13:21
Edit Download
4.81 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
6.48 KB lrw-r--r-- 2025-12-12 05:55:08
Edit Download
2.79 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
89.69 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
4.11 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
6.94 KB lrw-r--r-- 2025-12-17 05:13:32
Edit Download
67.04 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
289.13 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
200 B lrw-r--r-- 2025-12-12 05:55:09
Edit Download
255 B lrw-r--r-- 2025-12-12 05:55:09
Edit Download
22.66 KB lrw-r--r-- 2025-12-17 05:13:24
Edit Download
9.68 KB lrw-r--r-- 2025-12-17 05:13:30
Edit Download
23.49 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
3.16 KB lrw-r--r-- 2025-12-12 05:55:09
Edit Download
544 B lrw-r--r-- 2025-12-12 05:55:10
Edit Download
2.84 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
6.09 KB lrw-r--r-- 2025-12-17 05:13:29
Edit Download
6.41 KB lrw-r--r-- 2025-12-17 05:13:25
Edit Download
69.46 KB lrw-r--r-- 2025-12-17 05:13:27
Edit Download
445 B lrw-r--r-- 2025-12-12 05:55:10
Edit Download
799 B lrw-r--r-- 2025-12-17 05:13:25
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).