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

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

来自版块: 站长杂谈发表于: 2015-8-17 13:09:20
43367
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
现在制作主题,喜欢在首页放上图片展示或图文形式,在emlog主题制作中要如何才能实现这种效果?  f9 q: n, T, E) Q9 K
下面介绍了几种常用的方法,抛砖引玉,大家一起共同探导一下。1 O- H# X! r+ i( ?5 I% t

. _2 M7 ~6 s1 Z1、直接读取附件图片
' \6 e4 h; _4 ~( n! t8 L% W原理:这种方法就是直接判断附件的类型,并获取第一张图片的信息;如果没有图片附件,则显示默认图片或随机图片。( j. ]! O" z  H+ D7 n- o

% |  ?: y: W0 I/ o( f5 h4 y方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php. ?/ `: V/ v, t, j7 n
  2. //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片
    1 t& J* c, g4 ^! c; y' w" r
  3. function sheli_fjimg($logid){4 x5 a5 ?% w7 g* E8 y* g, T" a7 ^
  4. $db = MySql::getInstance();
    ' E+ f9 I1 l. V4 u$ z/ ^  ]8 @
  5. $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg';
    , s+ |5 d& ?5 w% n- o7 N% L
  6. if (is_file($thum_pic)) {
    / n6 d* U+ R$ v: K! O  ^, e, c
  7. $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg';
    3 |. L0 q% |+ v  F
  8. }else{
    2 v* `/ i" i) K
  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";
    4 v! q; B5 N: m7 L. ~/ _
  10. //    die($sql);
    " ?  x, i4 o$ i2 Y
  11. $img = $db->query($sqlimg);
    # ]5 n7 O5 y2 P8 k
  12. while($roww = $db->fetch_array($img)){
    # F# P/ i" A( X) T4 X
  13. $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath']));
    , ^) D# M: J" f) L
  14. }if (empty($thum_url)) {
    ; W4 [( K/ L  B% f% x9 O
  15. srand((double)microtime()*1000000); - w) W8 ^' r' q6 P. v/ I" L
  16. $randval   =   rand(0,9); , u/ T# l6 t: k: M2 p' h4 C
  17. $thum_url = BLOG_URL.'content/templates/shuyong_net-sf/images/shuyong_net/'.$randval.'.jpg';} //随机图片路径
    / W6 S7 D3 o6 K, E0 M% t* k
  18. }echo $thum_url;}! H8 V+ v$ p) y) N0 ^
  19. ?>
复制代码
然后在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码:<img src="<?php sheli_fjimg($value['logid']); ?>" >( n" {2 X7 @3 F, ]9 \
优缺点:优点:上传图片无论是否插入了正文,都可以读取第一张显示。
. K& M' j# U6 R4 N, v缺点:一是只能读取上传的第一张图片。6 D1 A) h' P2 Q
/ l; U$ Q7 l( ]( ]( [7 p% ~
2.读取正文的第一张图片! `; d' f; T" v% q9 s
原理:直接从正文代码——包括注释代码——中获取第一张图片的信息;如果正文中没有图片,则显示默认图片或者随机图片。
" E% H( Q9 D" I" i, q方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php( x1 O! j  v6 ]
  2. //获取文章中第一张图片,如果没有就调用随机图片
    1 V6 D' k5 F8 Y5 }( G
  3. function sheli_zwimg($str){% Z1 s8 X$ [" }0 J7 y6 c3 q% h. T
  4. preg_match_all("/\<img.*?src\="(.*?)"[^>]*>/i", $str, $match);) J9 h/ q, F% X( Q0 m3 M, p
  5. if(!empty($match[1])){echo $match[1][0];}else{
    / b: C* B- k- ]$ t& }' l
  6. echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg'; //随机图片路径及图片命名1.jpg……20.jpg
    6 R+ D5 [( R/ I$ ^* R% F9 m
  7. }}
    4 l) s1 N! V8 @! U
  8. ?>
复制代码
在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码: <img src="<?php sheli_zwimg($value['content']); ?>"
/ ]4 y, T  U! u7 C: O0 E
以下代码为调用正文第一张图片,没有图片则自定义,也可以空白,直接放在你要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; ?>
复制代码

7 u, G! T+ c& U' D& J3 H! [/ n

全部评论 0

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