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

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

来自版块: 站长杂谈发表于: 2015-8-17 13:09:20
43399
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
现在制作主题,喜欢在首页放上图片展示或图文形式,在emlog主题制作中要如何才能实现这种效果?* T/ W, f% w  w3 N# P
下面介绍了几种常用的方法,抛砖引玉,大家一起共同探导一下。
# G0 A2 ?% L& Y' X+ I+ s1 o# r7 c3 A5 |, y" D# T
1、直接读取附件图片. v- ]# b2 q* h# e
原理:这种方法就是直接判断附件的类型,并获取第一张图片的信息;如果没有图片附件,则显示默认图片或随机图片。9 w: K5 d5 c( C" i: j9 r1 U
5 Y& q* X8 `/ [  Y, Y6 S+ F
方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php
    / y7 ^0 C! K, {' c$ ]" U  z3 w
  2. //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片: x  |9 q# P) Y
  3. function sheli_fjimg($logid){3 e- y, r) [* `1 j
  4. $db = MySql::getInstance();
    ; A$ J& s2 v/ N" p0 w, X* [; |
  5. $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg';$ T* r" I, D+ f
  6. if (is_file($thum_pic)) {% u  }2 z* z4 ]9 ~: R; H/ [
  7. $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg'; - c: l4 g! I8 f
  8. }else{
    - U: M. E) n/ u* j4 M* ]& h: 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";, q  W; }0 y5 c$ s
  10. //    die($sql);, {. ~  A  {; v: G  l* K9 G
  11. $img = $db->query($sqlimg);( d, {$ G. ?$ c* Q0 H
  12. while($roww = $db->fetch_array($img)){. S. z; S" l0 @# D( h& G
  13. $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath']));
    2 m# P2 i4 V4 M* U- P' ?
  14. }if (empty($thum_url)) {% }/ r8 w+ P8 q
  15. srand((double)microtime()*1000000); ( C* Y5 _4 l5 k$ i7 H2 S
  16. $randval   =   rand(0,9);
    9 s( f; R1 _& T# N# E5 ^- [
  17. $thum_url = BLOG_URL.'content/templates/shuyong_net-sf/images/shuyong_net/'.$randval.'.jpg';} //随机图片路径
    * j- W3 {% B) }& z# D
  18. }echo $thum_url;}  j* \8 ~2 o; g9 \" Y+ ?
  19. ?>
复制代码
然后在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码:<img src="<?php sheli_fjimg($value['logid']); ?>" >( L  |* x2 C" B* B; A
优缺点:优点:上传图片无论是否插入了正文,都可以读取第一张显示。" R0 n: y' u$ i' R/ ^
缺点:一是只能读取上传的第一张图片。- ~1 u4 {$ E) T: m
+ i: i3 F& _+ n; ^7 L% Z
2.读取正文的第一张图片
" x! Y2 u) p2 S原理:直接从正文代码——包括注释代码——中获取第一张图片的信息;如果正文中没有图片,则显示默认图片或者随机图片。' M8 z/ W+ j4 T4 s! Y+ U
方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php4 F: V! l: m/ V0 y) H
  2. //获取文章中第一张图片,如果没有就调用随机图片. i) C4 P! i& D+ b  Z; z
  3. function sheli_zwimg($str){
    7 J* {& z' s5 x9 x# l! [- a  g
  4. preg_match_all("/\<img.*?src\="(.*?)"[^>]*>/i", $str, $match);( J0 ~" t# ^! i
  5. if(!empty($match[1])){echo $match[1][0];}else{
    : i& [6 [, \1 g/ h  U* d! E. N
  6. echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg'; //随机图片路径及图片命名1.jpg……20.jpg# i- }6 X& q8 S7 O* O( G$ k
  7. }}
    : E4 P0 m4 R& K# Q! ?) y! z* L) Z
  8. ?>
复制代码
在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码: <img src="<?php sheli_zwimg($value['content']); ?>"
. }$ [  C0 w% [* P" n, J8 f
以下代码为调用正文第一张图片,没有图片则自定义,也可以空白,直接放在你要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; ?>
复制代码

, O( B$ g7 ]0 C# Y

全部评论 0

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