src
标记替换为data:image/gif;base64,R0lGODlhAQABAPABAAAAAP///yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==
以进行延迟加载,并添加类lazyload
,以便lazysizes可以正常工作。但这里没有一个是成功的。
我错过了什么吗?
public static function filter_lazy_load_gravatar( $html ) {
$html = preg_replace( '/src="(http:\/\/([^\/]+)\/)?([^"]+)"/', 'src="data:image/gif;base64,R0lGODlhAQABAPABAAAAAP///yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="', $html);
$html = str_replace( 'srcset=', 'data-srcset=', $html );
$pat = '/class="([^"]*)"/';
$html = preg_replace($pat, 'class="$1 lazyload"', $html);
return $html;
}
输入
<img alt="" src="http://gravatar.com/image.jpg" srcset="http://0.gravatar.com/avatar/0b11f7eec98d2ee78414a4322ea94a01?s=400&d=mm&r=g 2x" class="avatar avatar-200 photo" height="200" width="200">
预期输出
<img alt="" src="data:image/gif;base64,R0lGODlhAQABAPABAAAAAP///yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" data-srcset="http://0.gravatar.com/avatar/0b11f7eec98d2ee78414a4322ea94a01?s=400&d=mm&r=g 2x" class="avatar avatar-200 photo lazyload" height="200" width="200">