Emlog调用附件第一张图片和正文第一张图片的方法-站长杂谈下载

Emlog调用附件第一张图片和正文第一张图片的方法

开通本站Svip会员,全站资源免费下
现在制作主题,喜欢在首页放上图片展示或图文形式,在emlog主题制作中要如何才能实现这种效果?6 X: l6 ]# X/ i( l; P
下面介绍了几种常用的方法,抛砖引玉,大家一起共同探导一下。
& u& |* j/ S% D2 ?! |& e
" O1 ~5 l- M: L0 U1、直接读取附件图片1 P7 F$ f0 B) B2 C
原理:这种方法就是直接判断附件的类型,并获取第一张图片的信息;如果没有图片附件,则显示默认图片或随机图片。
$ \' f* ~/ V: K) W* n2 {4 ?; U, U
方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php
    ( i: y) n' u3 F- o6 e; L1 Q& A" C7 P
  2. //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片
    1 I5 }% ]$ K9 j4 I! A, l# b, L/ u9 ~
  3. function sheli_fjimg($logid){4 B. A5 p' p  z' B* j7 X8 k
  4. $db = MySql::getInstance();; C# D! ?+ e- a" D* y: ?
  5. $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg';2 `4 F. ~+ R4 K* }, E* u
  6. if (is_file($thum_pic)) {
    / i2 o3 P7 M/ w$ m2 _
  7. $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg'; ) \7 ~' F, U, U% ~$ u8 [' ]
  8. }else{9 O! M% t9 m- I0 Y$ c
  9. $sqlimg = "SELECT * FROM ".DB_PREFIX."attachment WHERE blogid=".$logid." AND (`filepath` LIKE '%jpg' OR `filepath` LIKE '%gif' OR `filepath` LIKE '%png') ORDER BY `aid` ASC LIMIT 0,1";
    0 u  G+ A, ]- c0 s2 U
  10. //    die($sql);
    % C/ p$ B3 r. W+ e$ C
  11. $img = $db->query($sqlimg);
    % C: \* _) |( T7 S* q0 o
  12. while($roww = $db->fetch_array($img)){
    2 t7 k% j' ]: |* b) U
  13. $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath']));, R; M1 \4 T6 ^& O! w0 m$ Q
  14. }if (empty($thum_url)) {
    ! W- k" h2 r* i1 d2 ^. r
  15. srand((double)microtime()*1000000);
    6 \4 H) ~: y5 E9 v
  16. $randval   =   rand(0,9); / O' o5 T1 p8 u  U  W5 F
  17. $thum_url = BLOG_URL.'content/templates/shuyong_net-sf/images/shuyong_net/'.$randval.'.jpg';} //随机图片路径! w- R  M. A, }+ T+ i5 A
  18. }echo $thum_url;}' M% O1 p$ Z/ F! A( R, J+ f( W
  19. ?>
复制代码
然后在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码:<img src="<?php sheli_fjimg($value['logid']); ?>" >
4 G; I6 Y0 T; c; W. D) q; i6 E优缺点:优点:上传图片无论是否插入了正文,都可以读取第一张显示。( i& Q( \3 C) f# E5 W
缺点:一是只能读取上传的第一张图片。$ ~1 G3 M( K' m2 y' U8 J' A) f4 d

* F: P/ y8 i! x; |. L8 z: H- d) j2.读取正文的第一张图片
( G9 s' }4 q2 {6 M9 V2 `# x( n原理:直接从正文代码——包括注释代码——中获取第一张图片的信息;如果正文中没有图片,则显示默认图片或者随机图片。
( N* a9 Z- o) s* B方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php9 Q, B& b0 l$ o: A+ I- G
  2. //获取文章中第一张图片,如果没有就调用随机图片
    + p. v  `: s2 t$ \  @' h
  3. function sheli_zwimg($str){% W$ w: h$ y5 G( |6 B. A. `
  4. preg_match_all("/\<img.*?src\="(.*?)"[^>]*>/i", $str, $match);8 i7 |1 a, ?1 u* h) `% i
  5. if(!empty($match[1])){echo $match[1][0];}else{
    & W) S5 B2 n7 }- U
  6. echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg'; //随机图片路径及图片命名1.jpg……20.jpg9 U! t- W* t) W1 m8 X- `/ }
  7. }}
    & g, i+ q7 d. g
  8. ?>
复制代码
在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码: <img src="<?php sheli_zwimg($value['content']); ?>"
( L. l, G: `2 F  ?& E/ h- r" o
以下代码为调用正文第一张图片,没有图片则自定义,也可以空白,直接放在你要log_list.php对应位置即可。
  1. <?php $imgsrc = preg_match_all("|<img[^>]+src="([^>"]+)"?[^>]*>|is", $value['content'], $img);$imgsrc = !empty($img[1]) ? $img[1][0] : ''; ?><?php if($imgsrc): ?><img src="<?php echo $imgsrc; ?>"><?php else: ?><img src="<?php echo TEMPLATE_URL;?>images/news.jpg" alt="暂无图片" /><?php endif; ?>
复制代码

) `' J4 p9 Z; W0 s/ p" A8 p

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部