在處理opencart圖片加載的時候,想用lazylaod這個jquery插件,
網站前台都顯示好了,在後台加載的時候發現2了,後台編輯商品的圖片顯示沒出來。
因為我用的抓取把商品都自動填充,沒有經過後台手動添加。也就是說在處理lazyload顯示圖片的時候,其中的src data-data-original width height這些屬性是一股腦生成的,所以就導致後台顯示看不到,但是審查元素可以看到。
php添加是這樣添加的,大概複現一下:
<code>foreach (xx as x){ $imgs.='<img src="image/catalog/lazyload_grey.gif" data-original='.$tmp.'image/catalog/product/'.$id."/".$value.' width="800" height='800'>'; } </code>
當時想在後台的控制器裡正則替換不就好了,試了下,是可以。但是更新商品的時候又會被覆蓋掉。
想想還是透過前台處理比較好,用js或用ob函數。
雖然這兩種我都沒有處理,但是還是記錄下思路,等網站真需要優化,再具體操作。
以下是ob函數的一個小例子:
<code><?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**** </code>
我沒有處理,覺得這兩種方法都不大好。希望各位能再提供下處理lazyload或類似圖片懶加載時,前後台無法一致呈現的問題的方法或想法。
參考網站:
ob函數處理lazyload
lazyload
以上就介紹了obstart的小用法,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。