在处理opencart图片加载的时候,想用lazylaod这个jquery插件,
网站前台都显示好了,在后台加载的时候发现2了,后台编辑商品的图片显示没出来。

因为我用的抓取把商品都自动填充,没有经过后台手动添加。也就是说在处理lazyload显示图片的时候,其中的src data-data-original width height这些属性是一股脑生成的,所以就导致后台显示看不到,但是审查元素可以看到。

php添加是这样添加的,大概复现一下:

foreach (xx as x){
 $imgs.='<img src="image/catalog/lazyload_grey.gif" 
 data-original='.$tmp.'image/catalog/product/'.$id."/".$value.' 
 width="800" height='800'>';
}

当时想在后台的控制器里正则替换不就好了,试了下,是可以。但是更新商品的时候又会被覆盖掉。

想想还是通过前台处理比较好,用js或者用ob函数。

虽然这两种我都没有处理,但是还是记录下思路,等网站真需要优化,再具体操作。

以下是ob函数的一个小例子:

<?php
    ob_start();
    echo  '13712345678';
    echo 'another content<br>';
    $result=ob_get_contents();
    echo '<hr>';
    
    ob_clean();
  
    if(preg_match('/\d{11,}/', $result,$match)){
         echo str_replace(substr($match[0],-4),'****',$match[0]);
    }else{
        echo 'no match';
    }
    ob_end_flush();
    
    // result:1371234****

我没有处理,觉得这两种方法都不大好。希望各位能再提供下处理lazyload或者类似图片懒加载时,前后台无法一致呈现的问题的方法或思路。

参考网站:

ob函数处理lazyload

lazyload


牙小木木
1.5k 声望80 粉丝

iamtb.cn