最近在做一个以图片为主的网站,采用的DEDECMS图集,列表页要求直接调内容面的大图,解决方法如下:(主要是采用php的正则匹配函数preg_match_all函数来巩固复习下该函数: preg_match_all("正则表达式",匹配的内容,保存在数组中); 保存在数组中的数据是 按照这样的格式进行保存的数组[0] 是 符合条件的 一条 语句; 数组[1][2][3]...等等内容分别是正则表达式 第1、2、3个匹配符 所匹配的 数据 preg_match_all 匹配出来的 该数组是三维数组也就是说数组[1]仍旧是一个数组)

 1、在include/common.inc.php增加一函数

function Getimgs($aid, $imgwith = 300, $imgheight = 270, $num = 0, $style = ''){ global $dsql; $imgurls = ''; $row = $dsql -> getone("Select imgurls From`#@__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 .= "
  • "; }else{ $imglist .= ""; } } return $imglist; }

     

    2、dedecms网站首页和列表页中的调用方法: dede:arclist 标签调用和dede:list 列表调用 [field:id function="Getimg(@me,80,80,7)" /] www.dedecmsmuban.com 80和80和7分别是要显示图片的宽度(省略为110)和高度(省略为110)和调用张数(省略为(0),表示所有张)。 www.dedecmsmuban.com 如果有多个图片集,那么加上图片集的类目id,如下 [field:id typeid='' function="Getimg(@me,80,80,7)" /]

     3、dedecms文章内页调用图片集多张图片的调用办法: {dede:field.id function="Getimg(@me,80,80,7)" /} 如果有多个图片集,那么加上图片集的类目id,如下 {dede:field.id typeid='' function="Getimg(@me,80,80,7)" /} 80和80和7分别是要显示图片的宽度(省略为110)和高度(省略为110)和调用张数(省略为(0),表示所有张)。

    版权声明:若无特殊注明,本文皆为( yueshuo )原创,转载请保留文章出处。