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

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

来自版块: 站长杂谈发表于: 2015-8-17 13:09:20
43398
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
现在制作主题,喜欢在首页放上图片展示或图文形式,在emlog主题制作中要如何才能实现这种效果?
) |6 R1 ]. j2 z6 {下面介绍了几种常用的方法,抛砖引玉,大家一起共同探导一下。
$ t# v' E$ N5 E) W, d+ ~1 u8 v+ d
* y: n* A% h1 G  Y1、直接读取附件图片
5 g3 C) s& m. H* s. |: i原理:这种方法就是直接判断附件的类型,并获取第一张图片的信息;如果没有图片附件,则显示默认图片或随机图片。
& M  U; {) w5 P$ Q/ }, b3 \+ p# k
: C1 N4 b9 l& y- R+ N- ]5 @方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php
    4 K3 c7 U8 i) M/ a/ W. L
  2. //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片* L+ D  _: P) O/ T1 W4 G
  3. function sheli_fjimg($logid){
    # C7 d) b, Q+ z
  4. $db = MySql::getInstance();  Y5 {7 a% u9 e  a
  5. $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg';
    % e/ J' Q: i' q) K7 [( j3 |
  6. if (is_file($thum_pic)) {( r- ~% \5 m6 H
  7. $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg'; 7 b0 B) n& m- ]( S; k
  8. }else{
    $ E9 X) Z/ b( r' R! t3 J1 e; i4 w
  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";9 |& ~) E: w- \4 h6 i
  10. //    die($sql);" S. i7 k5 S# s2 u" p- o- }
  11. $img = $db->query($sqlimg);8 }6 l0 b5 x0 A) x5 n
  12. while($roww = $db->fetch_array($img)){3 v, T; ]7 e8 @7 O
  13. $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath']));( n4 ]( R2 `6 Y, v8 H
  14. }if (empty($thum_url)) {/ o: A4 Q9 [: P4 ?$ i
  15. srand((double)microtime()*1000000);
    * ?- V' [3 R5 C0 q1 Z
  16. $randval   =   rand(0,9);
    8 F) F% q* V  b# A$ i
  17. $thum_url = BLOG_URL.'content/templates/shuyong_net-sf/images/shuyong_net/'.$randval.'.jpg';} //随机图片路径
    9 ?- A7 d, e( f; ?" D7 _- _! J, M
  18. }echo $thum_url;}% T7 Z( G; Q. @5 O! K: _
  19. ?>
复制代码
然后在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码:<img src="<?php sheli_fjimg($value['logid']); ?>" >8 G: e- p0 Y+ j, z3 R# ]+ X
优缺点:优点:上传图片无论是否插入了正文,都可以读取第一张显示。% f/ x! t) E% m" S  @2 X3 }0 v% U' f
缺点:一是只能读取上传的第一张图片。4 ?# U4 j5 \0 U1 \

9 \* n( Q4 B& I2.读取正文的第一张图片* a: z2 t1 `! W6 r1 b& A
原理:直接从正文代码——包括注释代码——中获取第一张图片的信息;如果正文中没有图片,则显示默认图片或者随机图片。
+ @: M" {, X  X5 h7 Z0 }, h- n! Z方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php0 G; q0 l1 x+ |
  2. //获取文章中第一张图片,如果没有就调用随机图片! v5 E1 x* {. r8 }
  3. function sheli_zwimg($str){  q* A5 s9 _! B; A, _& f
  4. preg_match_all("/\<img.*?src\="(.*?)"[^>]*>/i", $str, $match);
    * z, ~) l' N& X/ O; f
  5. if(!empty($match[1])){echo $match[1][0];}else{
    9 F% B) C9 [/ W9 X% ?/ ?
  6. echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg'; //随机图片路径及图片命名1.jpg……20.jpg
    & I+ z% j( o* a+ W! I
  7. }}& ^; M4 `7 y1 S9 p6 M
  8. ?>
复制代码
在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码: <img src="<?php sheli_zwimg($value['content']); ?>"
/ [6 D7 z+ w8 ^) Q8 K! ~, P
以下代码为调用正文第一张图片,没有图片则自定义,也可以空白,直接放在你要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; ?>
复制代码

$ U9 Q! \" A$ z% ^

全部评论 0

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