文章内容自动添加缓加载

hotfix/paypal-note
尹诚诚 4 years ago
parent c49cce0833
commit 301a68f88f

@ -423,7 +423,7 @@ class Information extends CI_Controller
} else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) {
$update_info_log = $this->update_cache($ic_url);
} else if (strcasecmp($site_code, "ah") == 0 && !empty($auto_update_cache)) {
$update_info_log = $this->update_cache($ic_url);
//$update_info_log = $this->update_cache($ic_url);
} else if (strcasecmp($site_code, "cht") != 0 && strcasecmp($site_code, "gm") != 0 && strcasecmp($site_code, "ah") != 0) { //非cht站点并且非GM并且非AH
$update_info_log = $this->update_cache($ic_url);
} else if (strcasecmp($site_code, "ct") == 0 && !empty($auto_update_cache)) {
@ -649,7 +649,10 @@ class Information extends CI_Controller
if (!empty($meta_addon_js)) {
$template = str_replace('<!--@ADDON-JS@-->', '<script src="' . $meta_addon_js . '"></script>', $template);
}
$template = str_replace('<!--@CUSTOM-CONENT@-->', $information->ic_content, $template);
//设置内容图片缓加载
$lazy_content=$this->html_optimize_lib->set_lazy_loader($information->ic_content,'https://data.chinahighlights.com/grey.gif');
$template = str_replace('<!--@CUSTOM-CONENT@-->', $lazy_content, $template);
//Google广告代码
//if (!empty(get_meta($information->ic_id, 'meta_google_ad_content'))) {
$template = str_replace('<!--@Match-Content-GOOGLE@-->', '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4231674166786366" data-ad-slot="1447610161" data-matched-content-rows-num="2,2" data-matched-content-columns-num="1,3" data-matched-content-ui-type="image_stacked,image_stacked"></ins><script>(adsbygoogle = window.adsbygoogle || []).push({});</script>', $template);
@ -755,7 +758,10 @@ class Information extends CI_Controller
if (!empty($meta_addon_js)) {
$template = str_replace('<!--@ADDON-JS@-->', '<script src="' . $meta_addon_js . '"></script>', $template);
}
$template = str_replace('<!--@CUSTOM-CONENT@-->', $information->ic_content, $template);
//设置内容图片缓加载
$lazy_content=$this->html_optimize_lib->set_lazy_loader($information->ic_content,'https://data.asiahighlights.com/grey.gif');
$template = str_replace('<!--@CUSTOM-CONENT@-->', $lazy_content, $template);
//Google广告代码
//if (!empty(get_meta($information->ic_id, 'meta_google_ad_content'))) {
$template = str_replace('<!--@Match-Content-GOOGLE@-->', '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4231674166786366" data-ad-slot="2509031466" data-matched-content-rows-num="2,2" data-matched-content-columns-num="1,3" data-matched-content-ui-type="image_stacked,image_stacked"></ins><script>(adsbygoogle = window.adsbygoogle || []).push({});</script>', $template);

@ -20,8 +20,26 @@ class html_optimize_lib
$this->CI->load->library('simple_html_dom_lib');
}
//开启了延迟加载
public function set_lazy_loader($html, $grey_pic)
{
$html_object = str_get_html($html);
foreach ($html_object->find('img') as $image) {
$img_src = $image->src;
if (!empty($image->originalsrc)) {
$img_src = $image->originalsrc;
}
$image->src = $grey_pic;
$image->loader = 'lazy';
$image->originalsrc = $img_src;
}
return $html_object->save();
}
//获取图片尺寸
//获取图片尺寸,$lazy_loader是否开启延迟加载
public function set_image_size($html)
{
$html_object = str_get_html($html);
@ -34,9 +52,9 @@ class html_optimize_lib
$img_src = $image->originalsrc;
}
//图片已经设置了尺寸的不再修改
if (empty($image->width) && (strpos($img_src, '//data.') !== false || strpos($img_src, '//images.') !== false)) {//以data或者images开头的域名才能获取尺寸
if (empty($image->width) && (strpos($img_src, '//data.') !== false || strpos($img_src, '//images.') !== false)) {//以data或者images开头的域名才能获取尺寸
$img_src_urls = parse_url(trim($img_src));
$request_size[$img_src_urls['host']][] =$img_src_urls['path'];
$request_size[$img_src_urls['host']][] = $img_src_urls['path'];
}
}
@ -48,7 +66,7 @@ class html_optimize_lib
if (!empty($size_data)) {
$size_data = json_decode($size_data);
foreach ($size_data as $size_item) {
$size_item->photo = "https://".$host . $size_item->photo;//这个作为索引找到对应url的尺寸
$size_item->photo = "https://" . $host . $size_item->photo;//这个作为索引找到对应url的尺寸
$image_sizes[$size_item->photo] = $size_item;
}
}
@ -62,12 +80,12 @@ class html_optimize_lib
$img_src = $image->originalsrc;
}
//图片已经设置了尺寸的不再修改
if (empty($image->width) && (strpos($img_src, '//data.') !== false || strpos($img_src, '//images.') !== false)) {//以data或者images开头的域名才能获取尺寸
if (empty($image->width) && (strpos($img_src, '//data.') !== false || strpos($img_src, '//images.') !== false)) {//以data或者images开头的域名才能获取尺寸
$img_src_urls = parse_url(trim($img_src));
$img_index="https://".$img_src_urls['host'] . $img_src_urls['path'];
if(!empty($image_sizes[$img_index])){
$image->width=$image_sizes[$img_index]->width;
$image->height=$image_sizes[$img_index]->height;
$img_index = "https://" . $img_src_urls['host'] . $img_src_urls['path'];
if (!empty($image_sizes[$img_index])) {
$image->width = $image_sizes[$img_index]->width;
$image->height = $image_sizes[$img_index]->height;
}
}

Loading…
Cancel
Save