uawdijnntqw1x1x1
IP : 216.73.216.125
Hostname : premium160.web-hosting.com
Kernel : Linux premium160.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
batcwwjx
/
public_html
/
wp-content
/
plugins
/
.
/
wp-smushit
/
core
/
lazy-load
/
..
/
class-url-utils.php
/
/
<?php namespace Smush\Core; class Url_Utils { /** * @var Upload_Dir */ private $upload_dir; /** * @var string */ private $content_url; public function __construct() { $this->upload_dir = new Upload_Dir(); } public function get_extension( $url ) { $path = wp_parse_url( $url, PHP_URL_PATH ); if ( empty( $path ) ) { return false; } return strtolower( pathinfo( $path, PATHINFO_EXTENSION ) ); } public function get_url_scheme( $url ) { $url_parts = wp_parse_url( $url ); return empty( $url_parts['scheme'] ) ? false : $url_parts['scheme']; } /** * @param $url * * @return string * @see attachment_url_to_postid() */ public function make_media_url_relative( $url ) { $upload_url = $this->upload_dir->get_upload_url(); $path = $url; $site_url = parse_url( $upload_url ); $image_path = parse_url( $path ); // Force the protocols to match if needed. if ( isset( $image_path['scheme'] ) && ( $image_path['scheme'] !== $site_url['scheme'] ) ) { $path = str_replace( $image_path['scheme'], $site_url['scheme'], $path ); } if ( str_starts_with( $path, $upload_url . '/' ) ) { $path = substr( $path, strlen( $upload_url . '/' ) ); } return $path; } public function guess_dimensions_from_image_url( $url ) { $width_height_string = array(); if ( preg_match( '#-(\d+)x(\d+)\.(?:jpe?g|png|gif|webp|svg)#i', $url, $width_height_string ) ) { $width = (int) $width_height_string[1]; $height = (int) $width_height_string[2]; if ( $width && $height ) { return array( $width, $height ); } } return array( false, false ); } public function get_query_vars( $url ) { // Decode HTML entities in the URL. $url = html_entity_decode( $url ); $parse_url = wp_parse_url( $url ); $query_vars = array(); if ( ! empty( $parse_url['query'] ) ) { wp_parse_str( $parse_url['query'], $query_vars ); } return $query_vars; } public function get_image_dimensions( $image_url ) { $default = array( false, false ); if ( empty( $image_url ) ) { return $default; } list( $width, $height ) = $this->guess_dimensions_from_image_url( $image_url ); if ( ! empty( $width ) && ! empty( $height ) ) { return array( $width, $height ); } if ( $this->is_external_url( $image_url ) ) { if ( ! $this->should_fetch_external_image_dimensions( $image_url ) ) { return $default; } if ( ! $this->url_has_200_response( $image_url ) ) { return $default; } return $this->_get_image_dimensions( $image_url ); } $local_path = $this->url_to_path( $image_url ); if ( ! file_exists( $local_path ) ) { return $default; } return $this->_get_image_dimensions( $local_path ); } public function get_url_content_type_header( $image_url ) { // Use url headers to check content type if ( $this->is_external_url( $image_url ) ) { $headers = get_headers( $image_url, 1 ); if ( empty( $headers['content-type'] ) ) { return false; } return $headers['content-type']; } else { return false; } } private function should_fetch_external_image_dimensions( $image_url ) { return ini_get( 'allow_url_fopen' ) && apply_filters( 'wp_smush_should_fetch_external_image_dimensions', false, $image_url ); } private function _get_image_dimensions( $image_url ) { $sizes = wp_getimagesize( $image_url ); if ( empty( $sizes ) ) { return array( false, false ); } return array( $sizes[0], $sizes[1] ); } public function url_has_200_response( $url ) { if ( ! $url || ! ini_get( 'allow_url_fopen' ) ) { return false; } $file_headers = get_headers( $url ); if ( empty( $file_headers[0] ) ) { return false; } return false !== strstr( $file_headers[0], '200' ); } public function is_external_url( $absolute_url ) { if ( str_starts_with( $absolute_url, $this->get_content_url() ) ) { return false; } if ( str_starts_with( $absolute_url, $this->upload_dir->get_upload_url() ) ) { return false; } return true; } public function url_to_path( $absolute_url ) { if ( str_starts_with( $absolute_url, $this->get_content_url() ) ) { return str_replace( $this->get_content_url(), WP_CONTENT_DIR, $absolute_url ); } $upload_url = $this->upload_dir->get_upload_url(); $upload_dir = $this->upload_dir->get_upload_path(); if ( str_starts_with( $absolute_url, $upload_url ) ) { return str_replace( $upload_url, $upload_dir, $absolute_url ); } return false; } private function get_content_url() { if ( ! $this->content_url ) { $this->content_url = content_url(); } return $this->content_url; } /** * Get full size image url from resized one. * * @param string $src Image URL. * * @return string * @since 3.0 * */ public function get_url_without_dimensions( $src ) { $extensions = array( 'gif', 'jpg', 'jpeg', 'png', 'webp', ); if ( ! preg_match( '/(-\d+x\d+)\.(' . implode( '|', $extensions ) . ')(?:\?.+)?$/i', $src, $src_parts ) ) { return $src; } // Remove WP's resize string to get the original image. $original_src = str_replace( $src_parts[1], '', $src ); // Extracts the file path to the image minus the base url. $file_path = substr( $original_src, strlen( $this->upload_dir->get_upload_url() ) ); // Continue only if the file exists. if ( file_exists( $this->upload_dir->get_upload_path() . $file_path ) ) { return $original_src; } // Revert to source if file does not exist. return $src; } public function normalize_url( $url ) { $url = str_replace( array( 'http://', 'https://', 'www.' ), '', $url ); return untrailingslashit( $url ); } public function is_relative( string $url ): bool { return ! empty( preg_match( '/^\./', $url ) ) || empty( wp_parse_url( $url, PHP_URL_HOST ) ); } }
/home/batcwwjx/public_html/wp-content/plugins/./wp-smushit/core/lazy-load/../class-url-utils.php