在处理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或者类似图片懒加载时,前后台无法一致呈现的问题的方法或思路。
参考网站: