53 lines
900 B
PHP
53 lines
900 B
PHP
<?php
|
|
namespace W3TC;
|
|
|
|
class UserExperience_LazyLoad_Mutator_Picture {
|
|
private $common;
|
|
|
|
|
|
|
|
public function __construct( $common ) {
|
|
$this->common = $common;
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
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 );
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Common replace code for picture and img tags
|
|
*/
|
|
private function tag_source( $matches ) {
|
|
$content = $matches[0];
|
|
|
|
$content = preg_replace( '~(\s)(srcset|sizes)=~i',
|
|
'$1data-$2=', $content );
|
|
|
|
return $content;
|
|
}
|
|
}
|