如何实现循环中获取内容中的图片并限制数量功能
放到自定义函数文件
/** * 获取内容中的缩略图 * @param $value 内容值 * @param $num 指定获取数量 * @return 在变量中提取img标签的图片路径到数组 */ function get_content_img($value, $num = 0) { return qh_get_content_url($value, 'src', 'gif|jpg|jpeg|png', $num); }
替换并循环再输出
/** * 获取内容中的指定标签URL地址 * @param $value 内容值 * @param $attr 标签值,例如src * @param $ext 指定扩展名,例如jpg|gif * @param $num 指定获取数量 * @return 在变量中提取img标签的图片路径到数组 */ function qh_get_content_url($value, $attr, $ext, $num = 0) { $rt = []; if (!$value) { return $rt; } $ext = str_replace(',', '|', $ext); $value = preg_replace('/\.('.$ext.')@(.*)(\'|")/iU', '.$1$3', $value); if (preg_match_all("/(".$attr.")=([\"|']?)([^ \"'>]+\.(".$ext."))\\2/i", $value, $imgs)) { $imgs[3] = array_unique($imgs[3]); foreach ($imgs[3] as $i => $img) { if ($num && $i+1 > $num) { break; } $rt[] = trim($img, '"'); } } return $rt; }
<ul class="img-list-more"> {php $imgs = get_content_img($v['content'],3);} {loop $imgs $img} <li> <div class="qh-radius"> <div> <img data-src="{$img}" data-artZoom-show="{$img}" data-artZoom-source="{$img}" src="{$img}" class="qh-radius lazy artZoom"></div> <span class="image-number">+ <b>{dr_count($imgs)}</b> </span> </div> </li>{/loop} </ul>
问的人太多了,发帖分享给大家,学以致用