POST TIME:2017-11-13 01:09
新做一個以圖片為主的網站,采用的DEDECMS圖集,列表頁要求直接調內容面的大圖,解決方法如下:(主要是采用php的正則匹配函數preg_match_all函數來鞏固復習下該函數:preg_match_all("正則表達式",匹配的內容,保存在數組中);保存在數組中的數據是 按照這樣的格式進行保存的數組[0] 是 符合條件的 一條 語句;數組[1][2][3]...等等內容分別是正則表達式 第1、2、3個匹配符 所匹配的 數據preg_match_all 匹配出來的 該數組是三維數組也就是說數組[1]仍舊是一個數組)
1、在include/common.func.php增加一函數
////循環輸出多張圖片
function Getimgs($aid, $imgwith = 300, $imgheight = 270, $num = 0, $style = ''){
global $dsql;
$imgurls = '';
$row = $dsql -> getone("Select imgurls From`dede_addonimages` where aid='$aid'"); //
$imgurls = $row['imgurls'];
preg_match_all("/{dede:img (.*)}(.*){/dede:img/isU", $imgurls, $wordcount);
$count = count($wordcount[2]);
if ($num > $count || $num == 0){
$num = $count;
}
for($i = 0;$i < $num;$i++){
if($style == 'li'){
$imglist .= "<li><ahref=#" . $i . "><imgsrc=". trim($wordcount[2][$i]) . " width=" . $imgwith . " height=" . $imgheight . "></li></a>";
}else{
$imglist .= "<img src= " . trim($wordcount[2][$i]) . " width=" . $imgwith . "height=" . $imgheight . ">";
}
}
return $imglist;
}
2、在列表頁{dede:list}之間調用[field:id function="Getimgs(@me,80,80,9)" /],例如:
{dede:list pagesize='12'}
[field:id function="Getimgs(@me,80,80,9)" /]
{/dede:list}
如在其它地方調用,可用:{dede:field.id function="Getimgs(@me,400,400,10)" /}
DedeCMS列表頁調用圖集內容多張圖片的方法就是以上方法,趕快試試吧!