今天小编看见坛友在提问帝国CMS图片延迟加载怎么加title标签!当然有些坛友也热情的回答了!但是没有给具体代码或是也不想把时间花在不该花的时间上面!此时作为热心的小编来说是很乐于助人的!现在就开讲帝国CMS图片延迟加载的方法!PS:其实这个也不叫帝国特有的方法!理论上面来说所有建站系统都是通用的!现在开始讲解坛友要求用PHP的方法!作为小编来说是不推荐这种写法的,毕竟这个用lazyload的JS结合JQ或者JS是最完美的!
方法1.PHP封装函数
方法2.JS封装函数
鉴于代码过长就不直接贴代码了,直接引用本站封装好的
总结,其实这上面的两种方法其实都需要JS再客户端执行的,其实最好的方法是进行图片压缩,毕竟帝国有自带图片压缩的函数
如果在内容里面 随机调用2-3张图片,可以这样玩
方法1.PHP封装函数
打印出来是不是把图片那段地址带上lazyload图片延迟占位了,并且也保留了图片地址里面的title标签了。
- <?php
- $str = '<div>
- <strong> 1. 美文苑推荐文章<蒋成林/梅延煜:仙女洞的传说></strong>
- <p style="text-align: center;">
- <strong><a herf="https://www.meiweny.cn/gushi/mjgs/113177.html"><img title="仙女洞的传说" src="https://www.meiweny.cn/d/file/gushi/mjgs/2023-11-09/4fd4c259e3fe1bca1eb96de75d54f1d1.jpg" style="width: 375px; height: 500px;"></a></strong></p>
- <strong> 2. 美文苑推荐小说<醜小鴨新娘></strong>
- <p style="text-align: center;">
- <strong><a herf="https://www.meiweny.cn/book/xiandaiyanqing/43/"><img title="醜小鴨新娘" src="https://www.meiweny.cn/d/file/book/xiandaiyanqing/2021-11-06/1c281b5a2c1e28aed9c0501ba6516caa.jpg" style="width: 550px; height: 333px;"></a>
- </p>
- </div>';
- function imgzhuanhua($str) {
- $pattern = '/<img[^>]*?title="(.*?)".*?src="(.*?)".*?>/i';
- preg_match_all($pattern, $str, $matches);
- $titles = $matches[1];
- $srcs = $matches[2];
- for ($i = 0; $i < count($titles); $i++) {
- $imgTag = 'https://www.meiweny.cn/img/loading.gif" data-original="'.$srcs[$i].'" style="width: 550px; height: 333px;" title="'. $titles[$i] .'"';
- $str = str_replace($srcs[$i], $imgTag, $str);
- }
- return $str;
- }
- $result = imgzhuanhua($str);
- echo $result;
方法2.JS封装函数
鉴于代码过长就不直接贴代码了,直接引用本站封装好的
记得此地址要放在head标签里面也就是body前面。
- <script src="https://www.meiweny.cn/img/min.js "></script>
总结,其实这上面的两种方法其实都需要JS再客户端执行的,其实最好的方法是进行图片压缩,毕竟帝国有自带图片压缩的函数
把代码放到userfun.php中,调用这个函数即可
- // 内容图片压缩处理
- function tupianyasuo($add){
- $add['newstext'] = preg_replace_callback(
- '/<img.*?src="(.*?)".*?>/is',
- function ($callback) {
- return '<img src="' . sys_ResizeImg($callback[1], 370, 200, 3) . '" width="100%">';
- },
- stripslashes($add['newstext'])
- );
- $add['newstext'] = addslashes($add['newstext']);
- return $add;
- }
如果在内容里面 随机调用2-3张图片,可以这样玩
- <?php
- $str = '<div>
- <strong> 1. 美文苑推荐文章<蒋成林/梅延煜:仙女洞的传说></strong>
- <p style="text-align: center;">
- <strong><a herf="https://www.meiweny.cn/gushi/mjgs/113177.html"><img title="仙女洞的传说" src="https://www.meiweny.cn/d/file/gushi/mjgs/2023-11-09/4fd4c259e3fe1bca1eb96de75d54f1d1.jpg" style="width: 375px; height: 500px;"></a></strong></p>
- <strong> 2. 美文苑推荐小说<醜小鴨新娘></strong>
- <p style="text-align: center;">
- <strong><a herf="https://www.meiweny.cn/book/xiandaiyanqing/43/"><img title="醜小鴨新娘" src="https://www.meiweny.cn/d/file/book/xiandaiyanqing/2021-11-06/1c281b5a2c1e28aed9c0501ba6516caa.jpg" style="width: 550px; height: 333px;"></a>
- </p>
- </div>';
- $count = substr_count($str,'</p>');
- $j = 0;
- $num = floor($count / 2);
- $tem_num = 0;
- for($i = 0; $i < $count; $i++){
- $j = strpos($str, '</p>', $j);
- if($i == 0){
- $str = substr($str, 0, $j) . ('<img src="/uploads/images/'.rand(1,2511).'.jpg" width="100%" height="auto" title="随机插入图片1" />') . substr($str, $j);
- $j = strpos($str ,'</p>', $j);
- }else if($i == ($num)){
- $str = substr($str, 0, $j) . ('<img src="/uploads/images/'.rand(1,2511).'.jpg" width="100%" height="auto" title="随机插入图片2" />') . substr($str, $j);
- $j = strpos($str, '</p>', $j);
- }else if($i == ($count-1)){
- $str = substr($str, 0, $j) . ('<img src="/uploads/images/'.rand(1,2511).'.jpg" width="100%" height="auto" title="随机插入图片3" />') . substr($str, $j);
- }
- $j = ($j+1);
- }
- echo $str;