如何實現循環中獲取內容中的圖片并限制數量功能
放到自定義函數文件
/** * 獲取內容中的縮略圖 * @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>
問的人太多了,發帖分享給大家,學以致用