✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/builxejc/public_html/wp-content/plugins/wordpress-seo/src/helpers//url-helper.php
<?php

namespace Yoast\WP\SEO\Helpers;

use Yoast\WP\SEO\Models\SEO_Links;

/**
 * A helper object for URLs.
 */
class Url_Helper {

	/**
	 * Retrieve home URL with proper trailing slash.
	 *
	 * @param string      $path   Path relative to home URL.
	 * @param string|null $scheme Scheme to apply.
	 *
	 * @return string Home URL with optional path, appropriately slashed if not.
	 */
	public function home( $path = '', $scheme = null ) {
		$home_url = \home_url( $path, $scheme );

		if ( ! empty( $path ) ) {
			return $home_url;
		}

		$home_path = \wp_parse_url( $home_url, \PHP_URL_PATH );

		if ( $home_path === '/' ) { // Home at site root, already slashed.
			return $home_url;
		}

		if ( $home_path === null ) { // Home at site root, always slash.
			return \trailingslashit( $home_url );
		}

		if ( \is_string( $home_path ) ) { // Home in subdirectory, slash if permalink structure has slash.
			return \user_trailingslashit( $home_url );
		}

		return $home_url;
	}

	/**
	 * Determines whether the plugin is active for the entire network.
	 *
	 * @return bool Whether or not the plugin is network-active.
	 */
	public function is_plugin_network_active() {
		static $network_active = null;

		if ( ! \is_multisite() ) {
			return false;
		}

		// If a cached result is available, bail early.
		if ( $network_active !== null ) {
			return $network_active;
		}

		$network_active_plugins = \wp_get_active_network_plugins();

		// Consider MU plugins and network-activated plugins as network-active.
		$network_active = \strpos( \wp_normalize_path( \WPSEO_FILE ), \wp_normalize_path( \WPMU_PLUGIN_DIR ) ) === 0
			|| \in_array( \WP_PLUGIN_DIR . '/' . \WPSEO_BASENAME, $network_active_plugins, true );

		return $network_active;
	}

	/**
	 * Retrieve network home URL if plugin is network-activated, or home url otherwise.
	 *
	 * @return string Home URL with optional path, appropriately slashed if not.
	 */
	public function network_safe_home_url() {
		/**
		 * Action: 'wpseo_home_url' - Allows overriding of the home URL.
		 */
		\do_action( 'wpseo_home_url' );

		// If the plugin is network-activated, use the network home URL.
		if ( self::is_plugin_network_active() ) {
			return \network_home_url();
		}

		return \home_url();
	}

	/**
	 * Check whether a url is relative.
	 *
	 * @param string $url URL string to check.
	 *
	 * @return bool True when url is relative.
	 */
	public function is_relative( $url ) {
		return ( \strpos( $url, 'http' ) !== 0 && \strpos( $url, '//' ) !== 0 );
	}

	/**
	 * Gets the path from the passed URL.
	 *
	 * @param string $url The URL to get the path from.
	 *
	 * @return string The path of the URL. Returns an empty string if URL parsing fails.
	 */
	public function get_url_path( $url ) {
		if ( \is_string( $url ) === false
			&& ( \is_object( $url ) === false || \method_exists( $url, '__toString' ) === false )
		) {
			return '';
		}

		return (string) \wp_parse_url( $url, \PHP_URL_PATH );
	}

	/**
	 * Gets the host from the passed URL.
	 *
	 * @param string $url The URL to get the host from.
	 *
	 * @return string The host of the URL. Returns an empty string if URL parsing fails.
	 */
	public function get_url_host( $url ) {
		if ( \is_string( $url ) === false
			&& ( \is_object( $url ) === false || \method_exists( $url, '__toString' ) === false )
		) {
			return '';
		}

		return (string) \wp_parse_url( $url, \PHP_URL_HOST );
	}

	/**
	 * Determines the file extension of the given url.
	 *
	 * @param string $url The URL.
	 *
	 * @return string The extension.
	 */
	public function get_extension_from_url( $url ) {
		$path = $this->get_url_path( $url );

		if ( $path === '' ) {
			return '';
		}

		$parts = \explode( '.', $path );
		if ( empty( $parts ) || \count( $parts ) === 1 ) {
			return '';
		}

		return \end( $parts );
	}

	/**
	 * Ensures that the given url is an absolute url.
	 *
	 * @param string $url The url that needs to be absolute.
	 *
	 * @return string The absolute url.
	 */
	public function ensure_absolute_url( $url ) {
		if ( ! \is_string( $url ) || $url === '' ) {
			return $url;
		}

		if ( $this->is_relative( $url ) === true ) {
			return $this->build_absolute_url( $url );
		}

		return $url;
	}

	/**
	 * Parse the home URL setting to find the base URL for relative URLs.
	 *
	 * @param string|null $path Optional path string.
	 *
	 * @return string
	 */
	public function build_absolute_url( $path = null ) {
		$path      = \wp_parse_url( $path, \PHP_URL_PATH );
		$url_parts = \wp_parse_url( \home_url() );

		$base_url = \trailingslashit( $url_parts['scheme'] . '://' . $url_parts['host'] );

		if ( \is_string( $path ) ) {
			$base_url .= \ltrim( $path, '/' );
		}

		return $base_url;
	}

	/**
	 * Returns the link type.
	 *
	 * @param array      $url      The URL, as parsed by wp_parse_url.
	 * @param array|null $home_url Optional. The home URL, as parsed by wp_parse_url. Used to avoid reparsing the home_url.
	 * @param bool       $is_image Whether or not the link is an image.
	 *
	 * @return string The link type.
	 */
	public function get_link_type( $url, $home_url = null, $is_image = false ) {
		// If there is no scheme and no host the link is always internal.
		// Beware, checking just the scheme isn't enough as a link can be //yoast.com for instance.
		if ( empty( $url['scheme'] ) && empty( $url['host'] ) ) {
			return ( $is_image ) ? SEO_Links::TYPE_INTERNAL_IMAGE : SEO_Links::TYPE_INTERNAL;
		}

		// If there is a scheme but it's not http(s) then the link is always external.
		if ( \array_key_exists( 'scheme', $url ) && ! \in_array( $url['scheme'], [ 'http', 'https' ], true ) ) {
			return ( $is_image ) ? SEO_Links::TYPE_EXTERNAL_IMAGE : SEO_Links::TYPE_EXTERNAL;
		}

		$home_url ??= \wp_parse_url( \home_url() );

		// When the base host is equal to the host.
		if ( isset( $url['host'] ) && $url['host'] !== $home_url['host'] ) {
			return ( $is_image ) ? SEO_Links::TYPE_EXTERNAL_IMAGE : SEO_Links::TYPE_EXTERNAL;
		}

		// There is no base path and thus all URLs of the same domain are internal.
		if ( empty( $home_url['path'] ) ) {
			return ( $is_image ) ? SEO_Links::TYPE_INTERNAL_IMAGE : SEO_Links::TYPE_INTERNAL;
		}

		// When there is a path and it matches the start of the url.
		if ( isset( $url['path'] ) && \strpos( $url['path'], $home_url['path'] ) === 0 ) {
			return ( $is_image ) ? SEO_Links::TYPE_INTERNAL_IMAGE : SEO_Links::TYPE_INTERNAL;
		}

		return ( $is_image ) ? SEO_Links::TYPE_EXTERNAL_IMAGE : SEO_Links::TYPE_EXTERNAL;
	}

	/**
	 * Recreate current URL.
	 *
	 * @param bool $with_request_uri Whether we want the REQUEST_URI appended.
	 *
	 * @return string
	 */
	public function recreate_current_url( $with_request_uri = true ) {
		$current_url = 'http';
		if ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] === 'on' ) {
			$current_url .= 's';
		}
		$current_url .= '://';

		// phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- We know this is scary.
		$suffix = ( $with_request_uri && isset( $_SERVER['REQUEST_URI'] ) ) ? $_SERVER['REQUEST_URI'] : '';

		if ( isset( $_SERVER['SERVER_NAME'] ) && ! empty( $_SERVER['SERVER_NAME'] ) ) {
			// phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- We know this is scary.
			$server_name = $_SERVER['SERVER_NAME'];
		}
		else {
			// Early return with just the path.
			return $suffix;
		}

		$server_port = '';
		if ( isset( $_SERVER['SERVER_PORT'] ) && $_SERVER['SERVER_PORT'] !== '80' && $_SERVER['SERVER_PORT'] !== '443' ) {
			// phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- We know this is scary.
			$server_port = $_SERVER['SERVER_PORT'];
		}

		if ( ! empty( $server_port ) ) {
			$current_url .= $server_name . ':' . $server_port . $suffix;
		}
		else {
			// phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- We know this is scary.
			$current_url .= $server_name . $suffix;
		}

		return $current_url;
	}

	/**
	 * Parses a URL and returns its components, this wrapper function was created to support unit tests.
	 *
	 * @param string $parsed_url The URL to parse.
	 * @return array The parsed components of the URL.
	 */
	public function parse_str_params( $parsed_url ) {
		$array = [];

		// @todo parse_str changes spaces in param names into `_`, we should find a better way to support them.
		\wp_parse_str( $parsed_url, $array );

		return $array;
	}
}


Current_dir [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
open-graph
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
schema
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
twitter
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
aioseo-helper.php
1.236 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
asset-helper.php
2.512 KB
5 Mar 2024 5.08 PM
builxejc / builxejc
0644
attachment-cleanup-helper.php
2.24 KB
7 Feb 2023 2.53 PM
builxejc / builxejc
0644
author-archive-helper.php
5.249 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
blocks-helper.php
2.322 KB
29 Nov 2022 7.15 PM
builxejc / builxejc
0644
capability-helper.php
2.066 KB
1 Sep 2020 4.27 PM
builxejc / builxejc
0644
crawl-cleanup-helper.php
8.1 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
curl-helper.php
0.64 KB
1 Sep 2022 10.45 AM
builxejc / builxejc
0644
current-page-helper.php
15.633 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
date-helper.php
3.133 KB
21 Dec 2021 3.29 PM
builxejc / builxejc
0644
environment-helper.php
0.774 KB
29 Nov 2022 7.15 PM
builxejc / builxejc
0644
first-time-configuration-notice-helper.php
5.357 KB
2 Dec 2025 6.31 PM
builxejc / builxejc
0644
home-url-helper.php
0.665 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
image-helper.php
11.691 KB
24 Sep 2024 1.30 PM
builxejc / builxejc
0644
import-cursor-helper.php
1.359 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
import-helper.php
0.699 KB
5 Apr 2022 5.50 PM
builxejc / builxejc
0644
indexable-helper.php
9.237 KB
8 Oct 2025 6.12 PM
builxejc / builxejc
0644
indexable-to-postmeta-helper.php
6.751 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
indexing-helper.php
12.688 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
language-helper.php
2.652 KB
10 Jan 2023 5.05 PM
builxejc / builxejc
0644
lock-helper.php
2.84 KB
12 May 2026 4.03 PM
builxejc / builxejc
0644
meta-helper.php
2.912 KB
25 Jan 2022 3.16 PM
builxejc / builxejc
0644
notification-helper.php
2.009 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
options-helper.php
4.646 KB
7 Jan 2026 4.32 PM
builxejc / builxejc
0644
pagination-helper.php
5.679 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
permalink-helper.php
1.603 KB
4 Feb 2026 7.42 PM
builxejc / builxejc
0644
post-helper.php
5.423 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
post-type-helper.php
7.178 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
primary-term-helper.php
1.365 KB
19 Jan 2024 3.31 PM
builxejc / builxejc
0644
product-helper.php
1.077 KB
8 Aug 2023 4.52 PM
builxejc / builxejc
0644
redirect-helper.php
1.727 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
require-file-helper.php
0.318 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
robots-helper.php
1.735 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
robots-txt-helper.php
3.396 KB
14 Apr 2026 2.10 PM
builxejc / builxejc
0644
route-helper.php
0.678 KB
2 Dec 2025 6.31 PM
builxejc / builxejc
0644
sanitization-helper.php
1.031 KB
25 Jan 2022 3.16 PM
builxejc / builxejc
0644
score-icon-helper.php
2.779 KB
9 May 2023 1.01 PM
builxejc / builxejc
0644
short-link-helper.php
3.522 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644
site-helper.php
0.553 KB
22 Mar 2021 5.43 PM
builxejc / builxejc
0644
social-profiles-helper.php
10.733 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
string-helper.php
1.189 KB
25 Jan 2022 3.16 PM
builxejc / builxejc
0644
taxonomy-helper.php
4.98 KB
24 Jan 2023 3.07 PM
builxejc / builxejc
0644
url-helper.php
8.129 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
user-helper.php
3.932 KB
3 Dec 2024 4.05 PM
builxejc / builxejc
0644
wincher-helper.php
2.509 KB
13 Jun 2023 2.02 PM
builxejc / builxejc
0644
woocommerce-helper.php
1.271 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644
wordpress-helper.php
0.5 KB
7 Jul 2021 6.45 PM
builxejc / builxejc
0644
wpdb-helper.php
0.915 KB
7 Apr 2025 1.46 PM
builxejc / builxejc
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF