<?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 */ 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 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|bool 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 progmatic 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 $gzData String to decompress. * @return string|bool False on failure. */ public static function compatible_gzinflate( $gzData ) { // Compressed data might contain a full header, if so strip it for gzinflate(). if ( "\x1f\x8b\x08" === substr( $gzData, 0, 3 ) ) { $i = 10; $flg = ord( substr( $gzData, 3, 1 ) ); if ( $flg > 0 ) { if ( $flg & 4 ) { list($xlen) = unpack( 'v', substr( $gzData, $i, 2 ) ); $i = $i + 2 + $xlen; } if ( $flg & 8 ) { $i = strpos( $gzData, "\0", $i ) + 1; } if ( $flg & 16 ) { $i = strpos( $gzData, "\0", $i ) + 1; } if ( $flg & 2 ) { $i = $i + 2; } } $decompressed = @gzinflate( substr( $gzData, $i, -8 ) ); if ( false !== $decompressed ) { return $decompressed; } } // Compressed data from java.util.zip.Deflater amongst others. $decompressed = @gzinflate( substr( $gzData, 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' ) ); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
ID3 | Folder | 0755 |
|
|
IXR | Folder | 0755 |
|
|
PHPMailer | Folder | 0755 |
|
|
Requests | Folder | 0755 |
|
|
SimplePie | Folder | 0755 |
|
|
Text | Folder | 0755 |
|
|
assets | Folder | 0755 |
|
|
block-patterns | Folder | 0755 |
|
|
block-supports | Folder | 0755 |
|
|
blocks | Folder | 0755 |
|
|
certificates | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
customize | Folder | 0755 |
|
|
fonts | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
pomo | Folder | 0755 |
|
|
random_compat | Folder | 0755 |
|
|
rest-api | Folder | 0755 |
|
|
sitemaps | Folder | 0755 |
|
|
sodium_compat | Folder | 0755 |
|
|
theme-compat | Folder | 0755 |
|
|
widgets | Folder | 0755 |
|
|
admin-bar.php | File | 30.96 KB | 0644 |
|
atomlib.php | File | 11.67 KB | 0644 |
|
author-template.php | File | 16.62 KB | 0644 |
|
block-patterns.php | File | 1.42 KB | 0644 |
|
blocks.php | File | 25.42 KB | 0644 |
|
bookmark-template.php | File | 12.22 KB | 0644 |
|
bookmark.php | File | 14.78 KB | 0644 |
|
cache-compat.php | File | 1.02 KB | 0644 |
|
cache.php | File | 9.28 KB | 0644 |
|
canonical.php | File | 30.9 KB | 0644 |
|
capabilities.php | File | 33.98 KB | 0644 |
|
category-template.php | File | 53.98 KB | 0644 |
|
category.php | File | 12.41 KB | 0644 |
|
class-IXR.php | File | 2.48 KB | 0644 |
|
class-feed.php | File | 529 B | 0644 |
|
class-http.php | File | 38.78 KB | 0644 |
|
class-json.php | File | 42.42 KB | 0644 |
|
class-oembed.php | File | 407 B | 0644 |
|
class-phpass.php | File | 7.15 KB | 0644 |
|
class-phpmailer.php | File | 664 B | 0644 |
|
class-pop3.php | File | 20.35 KB | 0644 |
|
class-requests.php | File | 29.14 KB | 0644 |
|
class-simplepie.php | File | 94.01 KB | 0644 |
|
class-smtp.php | File | 452 B | 0644 |
|
class-snoopy.php | File | 36.83 KB | 0644 |
|
class-walker-category-dropdown.php | File | 2.08 KB | 0644 |
|
class-walker-category.php | File | 7.71 KB | 0644 |
|
class-walker-comment.php | File | 13.41 KB | 0644 |
|
class-walker-nav-menu.php | File | 8.44 KB | 0644 |
|
class-walker-page-dropdown.php | File | 2.25 KB | 0644 |
|
class-walker-page.php | File | 6.88 KB | 0644 |
|
class-wp-admin-bar.php | File | 16.59 KB | 0644 |
|
class-wp-ajax-response.php | File | 5.12 KB | 0644 |
|
class-wp-application-passwords.php | File | 9.35 KB | 0644 |
|
class-wp-block-list.php | File | 4.37 KB | 0644 |
|
class-wp-block-parser.php | File | 14.86 KB | 0644 |
|
class-wp-block-pattern-categories-registry.php | File | 4.11 KB | 0644 |
|
class-wp-block-patterns-registry.php | File | 4.4 KB | 0644 |
|
class-wp-block-styles-registry.php | File | 4.61 KB | 0644 |
|
class-wp-block-supports.php | File | 5.17 KB | 0644 |
|
class-wp-block-type-registry.php | File | 4.69 KB | 0644 |
|
class-wp-block-type.php | File | 5.98 KB | 0644 |
|
class-wp-block.php | File | 6.13 KB | 0644 |
|
class-wp-comment-query.php | File | 44.36 KB | 0644 |
|
class-wp-comment.php | File | 9.1 KB | 0644 |
|
class-wp-customize-control.php | File | 24.93 KB | 0644 |
|
class-wp-customize-manager.php | File | 196.47 KB | 0644 |
|
class-wp-customize-nav-menus.php | File | 55.44 KB | 0644 |
|
class-wp-customize-panel.php | File | 10.16 KB | 0644 |
|
class-wp-customize-section.php | File | 10.72 KB | 0644 |
|
class-wp-customize-setting.php | File | 29.03 KB | 0644 |
|
class-wp-customize-widgets.php | File | 65.44 KB | 0644 |
|
class-wp-date-query.php | File | 34.02 KB | 0644 |
|
class-wp-dependency.php | File | 2.45 KB | 0644 |
|
class-wp-editor.php | File | 68.9 KB | 0644 |
|
class-wp-embed.php | File | 15.42 KB | 0644 |
|
class-wp-error.php | File | 7.13 KB | 0644 |
|
class-wp-fatal-error-handler.php | File | 7.37 KB | 0644 |
|
class-wp-feed-cache-transient.php | File | 2.5 KB | 0644 |
|
class-wp-feed-cache.php | File | 970 B | 0644 |
|
class-wp-hook.php | File | 14.37 KB | 0644 |
|
class-wp-http-cookie.php | File | 7.02 KB | 0644 |
|
class-wp-http-curl.php | File | 12.06 KB | 0644 |
|
class-wp-http-encoding.php | File | 6.4 KB | 0644 |
|
class-wp-http-ixr-client.php | File | 3.39 KB | 0644 |
|
class-wp-http-proxy.php | File | 5.73 KB | 0644 |
|
class-wp-http-requests-hooks.php | File | 1.91 KB | 0644 |
|
class-wp-http-requests-response.php | File | 4.24 KB | 0644 |
|
class-wp-http-response.php | File | 2.88 KB | 0644 |
|
class-wp-http-streams.php | File | 15.74 KB | 0644 |
|
class-wp-image-editor-gd.php | File | 14.28 KB | 0644 |
|
class-wp-image-editor-imagick.php | File | 25.86 KB | 0644 |
|
class-wp-image-editor.php | File | 13.85 KB | 0644 |
|
class-wp-list-util.php | File | 6.46 KB | 0644 |
|
class-wp-locale-switcher.php | File | 4.9 KB | 0644 |
|
class-wp-locale.php | File | 13.65 KB | 0644 |
|
class-wp-matchesmapregex.php | File | 1.76 KB | 0644 |
|
class-wp-meta-query.php | File | 27.19 KB | 0644 |
|
class-wp-metadata-lazyloader.php | File | 5.26 KB | 0644 |
|
class-wp-network-query.php | File | 18.72 KB | 0644 |
|
class-wp-network.php | File | 12.09 KB | 0644 |
|
class-wp-object-cache.php | File | 13.22 KB | 0644 |
|
class-wp-oembed-controller.php | File | 6.63 KB | 0644 |
|
class-wp-oembed.php | File | 29.61 KB | 0644 |
|
class-wp-paused-extensions-storage.php | File | 4.81 KB | 0644 |
|
class-wp-post-type.php | File | 20.06 KB | 0644 |
|
class-wp-post.php | File | 6.27 KB | 0644 |
|
class-wp-query.php | File | 131.09 KB | 0644 |
|
class-wp-recovery-mode-cookie-service.php | File | 6.31 KB | 0644 |
|
class-wp-recovery-mode-email-service.php | File | 10.41 KB | 0644 |
|
class-wp-recovery-mode-key-service.php | File | 4.17 KB | 0644 |
|
class-wp-recovery-mode-link-service.php | File | 3.29 KB | 0644 |
|
class-wp-recovery-mode.php | File | 11.11 KB | 0644 |
|
class-wp-rewrite.php | File | 59.55 KB | 0644 |
|
class-wp-role.php | File | 2.44 KB | 0644 |
|
class-wp-roles.php | File | 8.23 KB | 0644 |
|
class-wp-session-tokens.php | File | 7.25 KB | 0644 |
|
class-wp-simplepie-file.php | File | 3.18 KB | 0644 |
|
class-wp-simplepie-sanitize-kses.php | File | 1.73 KB | 0644 |
|
class-wp-site-query.php | File | 28.62 KB | 0644 |
|
class-wp-site.php | File | 7.19 KB | 0644 |
|
class-wp-tax-query.php | File | 18.81 KB | 0644 |
|
class-wp-taxonomy.php | File | 12.28 KB | 0644 |
|
class-wp-term-query.php | File | 35.38 KB | 0644 |
|
class-wp-term.php | File | 5.14 KB | 0644 |
|
class-wp-text-diff-renderer-inline.php | File | 716 B | 0644 |
|
class-wp-text-diff-renderer-table.php | File | 16.48 KB | 0644 |
|
class-wp-theme.php | File | 49.57 KB | 0644 |
|
class-wp-user-meta-session-tokens.php | File | 2.92 KB | 0644 |
|
class-wp-user-query.php | File | 30.59 KB | 0644 |
|
class-wp-user-request.php | File | 2.14 KB | 0644 |
|
class-wp-user.php | File | 21.62 KB | 0644 |
|
class-wp-walker.php | File | 12.42 KB | 0644 |
|
class-wp-widget-factory.php | File | 2.56 KB | 0644 |
|
class-wp-widget.php | File | 17.48 KB | 0644 |
|
class-wp-xmlrpc-server.php | File | 205.74 KB | 0644 |
|
class-wp.php | File | 24.47 KB | 0644 |
|
class.wp-dependencies.php | File | 12.57 KB | 0644 |
|
class.wp-scripts.php | File | 18.04 KB | 0644 |
|
class.wp-styles.php | File | 10.62 KB | 0644 |
|
comment-template.php | File | 92.5 KB | 0644 |
|
comment.php | File | 122.73 KB | 0644 |
|
compat.php | File | 11.46 KB | 0644 |
|
cron.php | File | 32.94 KB | 0644 |
|
date.php | File | 406 B | 0644 |
|
default-constants.php | File | 10.02 KB | 0644 |
|
default-filters.php | File | 26.8 KB | 0644 |
|
default-widgets.php | File | 2.07 KB | 0644 |
|
deprecated.php | File | 118.96 KB | 0644 |
|
embed-template.php | File | 341 B | 0644 |
|
embed.php | File | 46.9 KB | 0644 |
|
error-protection.php | File | 4.02 KB | 0644 |
|
feed-atom-comments.php | File | 5.32 KB | 0644 |
|
feed-atom.php | File | 3.03 KB | 0644 |
|
feed-rdf.php | File | 2.61 KB | 0644 |
|
feed-rss.php | File | 1.16 KB | 0644 |
|
feed-rss2-comments.php | File | 3.97 KB | 0644 |
|
feed-rss2.php | File | 3.71 KB | 0644 |
|
feed.php | File | 22.43 KB | 0644 |
|
formatting.php | File | 303 KB | 0644 |
|
functions.php | File | 232.42 KB | 0644 |
|
functions.wp-scripts.php | File | 13.07 KB | 0644 |
|
functions.wp-styles.php | File | 8.11 KB | 0644 |
|
general-template.php | File | 153.86 KB | 0644 |
|
http.php | File | 21.86 KB | 0644 |
|
kses.php | File | 61.88 KB | 0644 |
|
l10n.php | File | 55.35 KB | 0644 |
|
link-template.php | File | 141.8 KB | 0644 |
|
load.php | File | 47.58 KB | 0644 |
|
locale.php | File | 162 B | 0644 |
|
media-template.php | File | 58.93 KB | 0644 |
|
media.php | File | 163.75 KB | 0644 |
|
meta.php | File | 58.16 KB | 0644 |
|
ms-blogs.php | File | 24.58 KB | 0644 |
|
ms-default-constants.php | File | 4.6 KB | 0644 |
|
ms-default-filters.php | File | 6.34 KB | 0644 |
|
ms-deprecated.php | File | 20.63 KB | 0644 |
|
ms-files.php | File | 2.58 KB | 0644 |
|
ms-functions.php | File | 91.6 KB | 0644 |
|
ms-load.php | File | 19.32 KB | 0644 |
|
ms-network.php | File | 3.58 KB | 0644 |
|
ms-settings.php | File | 4.03 KB | 0644 |
|
ms-site.php | File | 42.49 KB | 0644 |
|
nav-menu-template.php | File | 22.75 KB | 0644 |
|
nav-menu.php | File | 40.86 KB | 0644 |
|
option.php | File | 72.77 KB | 0644 |
|
pluggable-deprecated.php | File | 6.12 KB | 0644 |
|
pluggable.php | File | 99.8 KB | 0644 |
|
plugin.php | File | 31.81 KB | 0644 |
|
post-formats.php | File | 6.91 KB | 0644 |
|
post-template.php | File | 61.94 KB | 0644 |
|
post-thumbnail-template.php | File | 9.02 KB | 0644 |
|
post.php | File | 250.46 KB | 0644 |
|
query.php | File | 34.96 KB | 0644 |
|
registration-functions.php | File | 200 B | 0644 |
|
registration.php | File | 200 B | 0644 |
|
rest-api.php | File | 83.51 KB | 0644 |
|
revision.php | File | 21.51 KB | 0644 |
|
rewrite.php | File | 17.63 KB | 0644 |
|
rss-functions.php | File | 255 B | 0644 |
|
rss.php | File | 22.44 KB | 0644 |
|
script-loader.php | File | 90.32 KB | 0644 |
|
session.php | File | 258 B | 0644 |
|
shortcodes.php | File | 20.92 KB | 0644 |
|
sitemaps.php | File | 3.16 KB | 0644 |
|
spl-autoload-compat.php | File | 441 B | 0644 |
|
taxonomy.php | File | 159.82 KB | 0644 |
|
template-loader.php | File | 2.94 KB | 0644 |
|
template.php | File | 21.02 KB | 0644 |
|
theme.php | File | 121.36 KB | 0644 |
|
update.php | File | 25.78 KB | 0644 |
|
user.php | File | 137.01 KB | 0644 |
|
vars.php | File | 5.68 KB | 0644 |
|
version.php | File | 766 B | 0644 |
|
widgets.php | File | 58.84 KB | 0644 |
|
wlwmanifest.xml | File | 1.02 KB | 0644 |
|
wp-db.php | File | 103.72 KB | 0644 |
|
wp-diff.php | File | 647 B | 0644 |
|