Dede织梦 获取文章全部图片

  206 次阅读

CONTENT

最近在dedecms二次开发中 需要调用一片普通文章内的全部图片,方法思路有很多

方法一:

1.找到文件: 织梦根目录/include/extend.func.php 在最下方添加

  1. /*
  2. 几个形参: 
  3.   $aid (文章id) 
  4.   $num (调用图片的数量)
  5.   $style (两种调用样式)
  6. */
  7. function Getimgs($aid, $num = 0, $style = ‘‘){
  8.     global $dsql; 
  9.     $imgurls = ‘‘; 
  10.   //下两行区别正与是否指定数据库前缀 第一行效率更高 自行选择
  11.   //$row = $dsql -> getone("Select body From `dede_addonarticle` where aid=‘$aid‘");//数据库前缀若为dede_可将此行注释删除(最前方双斜线)
  12.     $row = $dsql -> getone("Select body From `#@__addonarticle` where aid=‘$aid‘"); //若上一行注释删除 请将此行代码注释或删除 
  13.     $imgurls = $row[‘body‘];
  14.     preg_match_all("/<[img|IMG].*?src=\"(.*?)\".*?\/>/", $imgurls, $wordcount); 
  15.     $count = count($wordcount[1]); 
  16.     if ($num > $count || $num == 0)
  17.     { 
  18.         $num = $count; 
  19.     } 
  20.     for($i = 0;$i < $num;$i++){
  21.         if($style == ‘li‘)
  22.         {
  23.             $imglist .=<li><a href="#‘.$i.‘"><img src="‘. trim($wordcount[1][$i]) .‘" /></a></li>;
  24.         }else{ 
  25.             $imglist .=<img src="‘. trim($wordcount[1][$i]) .‘" />;
  26.         } 
  27.     } 
  28.     return $imglist; 
  29. }

2.调用方式

{dede:field.id function=Getimgs(@me,5,‘li‘)/}

其中几个实参 @me(文章id), 5(调用图片数量[大于时间图片数量时无效]) , ‘li‘(两种样式)

方法二:

1.在include/extend.func.php 增加函数

  1. function Getpic($body)
  2.  
  3. {
  4.  
  5.     $getpic = '';
  6.  
  7.     preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|bmp|png))/isU",$body,$img_array);
  8.  
  9.  
  10.  
  11.     $img_array = array_unique($img_array[2]);
  12.  
  13.     if(count($img_array)>0)
  14.  
  15.     {
  16.  
  17.         foreach($img_array as $key=>$value)
  18.  
  19.         {
  20.  
  21.             $picname = preg_replace("/[\"|'| ]{1,}/", '', $value);
  22.  
  23.             $getpic .="<p><img src='".$picname."' border=0 /></p>";
  24.  
  25.         }
  26.  
  27.     }
  28.  
  29.     else
  30.  
  31.     {    
  32.  
  33.      $getpic="<p>没有图片</p>";
  34.  
  35.     }
  36.  
  37.     return $getpic;
  38.  
  39. }

2.调用方法

[field:body function='Getpic(@me)'/]

Comments | NOTHING

暂无评论...