| Server IP : 104.21.21.239 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/tgnew/wp-content/plugins/w3-total-cache/ |
Upload File : |
<?php
/**
* File: UserExperience_LazyLoad_Mutator_Picture.php
*
* @package W3TC
*/
namespace W3TC;
/**
* Class UserExperience_LazyLoad_Mutator_Picture
*/
class UserExperience_LazyLoad_Mutator_Picture {
/**
* Constructor for the UserExperience_LazyLoad_Mutator_Picture class.
*
* An instance of a common utility class used to process image and source tags.
*
* @var object
*/
private $common;
/**
* Initializes the class with a common utility instance.
*
* @param object $common An instance of a utility class for handling image and source tag processing.
*
* @return void
*/
public function __construct( $common ) {
$this->common = $common;
}
/**
* Processes the provided content to modify `<img>` and `<source>` tags.
*
* This method replaces the `srcset` and `sizes` attributes in `<source>` tags with `data-srcset` and `data-sizes`,
* and applies custom modifications to `<img>` tags using utility methods.
*
* @param string $content The content containing `<img>` and `<source>` tags to be processed.
*
* @return string The modified content with lazy-loading attributes applied.
*/
public function run( $content ) {
$content = preg_replace_callback(
'~(<img\s[^>]+>)~i',
array( $this, 'tag_img' ),
$content
);
$content = preg_replace_callback(
'~(<source\s[^>]+>)~i',
array( $this, 'tag_source' ),
$content
);
return $content;
}
/**
* Processes a matched `<img>` tag.
*
* This method retrieves the dimensions of the image and replaces its attributes with lazy-loading compatible attributes.
*
* @param array $matches The matches from the regular expression containing the `<img>` tag.
*
* @return string The modified `<img>` tag with lazy-loading attributes applied.
*/
public function tag_img( $matches ) {
$content = $matches[0];
// get image dimensions.
$dim = $this->common->tag_get_dimensions( $content );
return $this->common->tag_img_content_replace( $content, $dim );
}
/**
* Processes a matched `<source>` tag.
*
* This method replaces the `srcset` and `sizes` attributes with `data-srcset` and `data-sizes`
* to delay loading the sources until needed.
*
* @param array $matches The matches from the regular expression containing the `<source>` tag.
*
* @return string The modified `<source>` tag with lazy-loading attributes applied.
*/
private function tag_source( $matches ) {
$content = $matches[0];
$content = preg_replace(
'~(\s)(srcset|sizes)=~i',
'$1data-$2=',
$content
);
return $content;
}
}