| Server IP : 146.59.209.152 / Your IP : 216.73.216.46 Web Server : Apache System : Linux webm005.cluster131.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 User : infrafs ( 43850) PHP Version : 8.2.29 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/infrafs/INFRABIKEDE/wp-content/plugins/sg-cachepress/core/DNS/ |
Upload File : |
<?php
namespace SiteGround_Optimizer\DNS;
/**
* DNS Prefetching class.
*/
class Prefetch {
/**
* The singleton instance.
*
* @since 5.6.0
*
* @var The singleton instance.
*/
private static $instance;
/**
* The constructor.
*/
public function __construct() {
self::$instance = $this;
}
/**
* Get the singleton instance.
*
* @since 5.6.0
*
* @return \DNS prefetch The singleton instance.
*/
public static function get_instance() {
if ( null == self::$instance ) {
static::$instance = new self();
}
return self::$instance;
}
/**
* Run the dns-prefetch link insertion.
*
* @since 5.6.0
*
* @param string $html The HTML Content.
*/
public function run( $html ) {
// Check if there are any urls inserted by the user.
$urls = get_option( 'siteground_optimizer_dns_prefetch_urls', false );
// Return, if no url's are set by the user.
if ( empty( $urls ) ) {
return $html;
}
$new_html = '';
// Loop trough urls and prepare them for insertion.
foreach ( $urls as $url ) {
// Replace the protocol with //.
$url_without_protocol = preg_replace( '~(?:(?:https?:)?(?:\/\/)(?:www\.|(?!www)))?((?:.*?)\.(?:.*))~', '//$1', $url );
// Remove the protocol if for some reason url has passed with it.
$new_html .= '<link rel="dns-prefetch" href="' . $url_without_protocol . '" data-set-by="SiteGround Optimizer"/>';
}
// Insert the link in the head section.
return str_replace( '</head>', $new_html . '</head>', $html );
}
}