$49 GRAYBYTE WORDPRESS FILE MANAGER $57

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/home/bqrcodec/contact.ancuong.com/wp-content/plugins/wp-smushit/core/

HOME
Current File : /home/bqrcodec/contact.ancuong.com/wp-content/plugins/wp-smushit/core//class-server-utils.php
<?php

namespace Smush\Core;

class Server_Utils {
	const FIREFOX_AGENT = '#Firefox/(?<version>[0-9]{2,})#i';
	const IPAD_IPHONE_AGENT = '#(?:iPad|iPhone)(.*)Version/(?<version>[0-9]{2,})#i';
	const SAFARI_AGENT = '#Version/(?<version>[0-9]{2,})(?:.*)Safari#i';
	const MSIE_TRIDENT = '/MSIE|Trident/i';
	/**
	 * @var string
	 */
	private $mysql_version;

	private $browser_webp_support = array(
		self::FIREFOX_AGENT     => array( 'version' => 66, 'operator' => '>' ),
		self::IPAD_IPHONE_AGENT => array( 'version' => 14, 'operator' => '>=' ),
		self::SAFARI_AGENT      => array( 'version' => 14, 'operator' => '>=' ),
		self::MSIE_TRIDENT      => false,
	);

	public function get_server_type() {
		if ( empty( $_SERVER['SERVER_SOFTWARE'] ) ) {
			return '';
		}

		$server_software = wp_unslash( $_SERVER['SERVER_SOFTWARE'] );
		if ( ! is_array( $server_software ) ) {
			$server_software = array( $server_software );
		}

		$server_software = array_map( 'strtolower', $server_software );
		$is_nginx        = $this->array_has_needle( $server_software, 'nginx' );
		if ( $is_nginx ) {
			return 'nginx';
		}

		$is_apache = $this->array_has_needle( $server_software, 'apache' );
		if ( $is_apache ) {
			return 'apache';
		}

		return '';
	}

	public function get_memory_limit() {
		if ( function_exists( 'ini_get' ) ) {
			$memory_limit = ini_get( 'memory_limit' );
		} else {
			// Sensible default.
			$memory_limit = '128M';
		}

		if ( ! $memory_limit || - 1 === (int) $memory_limit ) {
			// Unlimited, set to 32GB.
			$memory_limit = '32000M';
		}

		return intval( $memory_limit ) * 1024 * 1024;
	}

	public function get_memory_usage() {
		return memory_get_usage( true );
	}

	private function array_has_needle( $array, $needle ) {
		foreach ( $array as $item ) {
			if ( strpos( $item, $needle ) !== false ) {
				return true;
			}
		}

		return false;
	}

	public function get_mysql_version() {
		if ( ! $this->mysql_version ) {
			global $wpdb;
			/**
			 * MariaDB version prefix 5.5.5- is not stripped when using $wpdb->db_version() to get the DB version:
			 * https://github.com/php/php-src/issues/7972
			 */
			$this->mysql_version = $wpdb->get_var( 'SELECT VERSION()' );
		}
		return $this->mysql_version;
	}

	public function get_max_execution_time() {
		return (int) ini_get( 'max_execution_time' );
	}

	public function get_user_agent() {
		return ! empty( $_SERVER['HTTP_USER_AGENT'] ) ? wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) : '';
	}

	public function get_document_root() {
		return ! empty( $_SERVER['DOCUMENT_ROOT'] ) ? wp_unslash( $_SERVER['DOCUMENT_ROOT'] ) : '';
	}

	public function get_http_accept_header() {
		if ( ! empty( $_SERVER['HTTP_ACCEPT'] ) ) {
			return wp_unslash( $_SERVER['HTTP_ACCEPT'] );
		}

		if ( function_exists( 'apache_request_headers' ) ) {
			$headers = apache_request_headers();
			if ( ! empty( $headers['Accept'] ) ) {
				return $headers['Accept'];
			}
		}

		return '';
	}

	public function browser_supports_webp() {
		$http_accept = $this->get_http_accept_header();
		if ( ! empty( $http_accept ) && false !== strpos( $http_accept, 'webp' ) ) {
			return true;
		}

		return $this->check_user_agent_version( $this->browser_webp_support );
	}

	private function check_user_agent_version( $allowed, $default = false ) {
		$user_agent = $this->get_user_agent();

		foreach ( $allowed as $user_agenet_regex => $data ) {
			$version  = isset( $data['version'] ) ? $data['version'] : 0;
			$operator = isset( $data['operator'] ) ? $data['operator'] : '';

			$matches = array();
			if ( preg_match( $user_agenet_regex, $user_agent, $matches ) ) {
				if ( $version && $operator && $matches['version'] ) {
					return version_compare( (int) $matches['version'], $version, $operator );
				} else {
					return $data;
				}
			}
		}

		return $default;
	}

	public function get_request_uri() {
		return rawurldecode( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) );
	}

	public function get_current_url() {
		$protocol = is_ssl() ? 'https:' : 'http:';
		$domain   = parse_url( site_url(), PHP_URL_HOST );
		$path     = parse_url( $this->get_request_uri(), PHP_URL_PATH );

		return $protocol . '//' . $domain . $path;
	}

	public function get_request_method() {
		if ( empty( $_SERVER['REQUEST_METHOD'] ) ) {
			return '';
		}
		return strtoupper( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) );
	}
}

Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
api
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
backups
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
cdn
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
external
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
integrations
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
lazy-load
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
media
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
media-library
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
modules
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
parser
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
photon
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
png2jpg
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
resize
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
s3
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
smush
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
stats
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
transform
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
webp
--
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0755
class-animated-status-controller.php
2.749 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-array-utils.php
1.678 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-attachment-id-list.php
2.38 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-backup-size.php
1.503 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-cache-controller.php
3.344 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-cli.php
7.364 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-configs.php
23.573 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-controller.php
1.589 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-core.php
17.235 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-deprecated-hooks.php
3.8 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-error-handler.php
7.955 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-file-system.php
1.905 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-helper.php
28.246 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-installer.php
9.451 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-modules.php
5.095 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-optimization-controller.php
1.029 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-plugin-settings-watcher.php
2.341 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-rest.php
2.98 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-server-utils.php
4.291 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-settings.php
37.465 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-smush-file.php
0.304 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-stats.php
37.542 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-upload-dir.php
3.629 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644
class-url-utils.php
1.549 KB
1 Nov 2024 12.35 PM
bqrcodec / bqrcodec
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF