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

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

开通本站Svip会员,全站资源免费下
现在制作主题,喜欢在首页放上图片展示或图文形式,在emlog主题制作中要如何才能实现这种效果?" \5 d$ A4 ~' {% t, v
下面介绍了几种常用的方法,抛砖引玉,大家一起共同探导一下。
# @2 F- z6 X' h9 L# A' t, s% f, e% T- {8 {8 ^1 o" m5 m8 [
1、直接读取附件图片
4 @, V. A9 `( e% w# R6 Q$ a; X2 j( ^原理:这种方法就是直接判断附件的类型,并获取第一张图片的信息;如果没有图片附件,则显示默认图片或随机图片。, z  p+ @1 e  N. v3 v4 I. @* j
. B" d. |! q, z5 A
方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php
    8 @  Y" o8 ?$ K0 L1 h$ N) a
  2. //获取文章缩略图,先是自定义指定,然后是查找附件图片,最后是随机图片
    * T! C% N, W7 S9 O/ f( T9 R' X
  3. function sheli_fjimg($logid){
    , h4 I' C/ R+ K7 u- R( q
  4. $db = MySql::getInstance();2 O) _2 o0 u2 x0 i9 P- Q
  5. $thum_pic = EMLOG_ROOT.'/thumpic/'.$logid.'.jpg';
    5 `* E1 P/ ?' u8 u; y/ m; l9 e! b" V1 H; O
  6. if (is_file($thum_pic)) {$ n3 C" J+ l0 e; a
  7. $thum_url = BLOG_URL.'thumpic/'.$logid.'.jpg';
    # v% a- j. K1 n, q% G5 E. i
  8. }else{
    4 c# s# t6 _9 b. _( E
  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";
    2 V$ K/ e9 O* W
  10. //    die($sql);! e' V2 B& ^6 J! c2 D
  11. $img = $db->query($sqlimg);6 ^6 E7 x! m( U4 x: E
  12. while($roww = $db->fetch_array($img)){
    3 N1 q! x- E& q! ]" h4 k6 g
  13. $thum_url=BLOG_URL.substr($roww['filepath'],3,strlen($roww['filepath']));' p+ ~8 K; d2 t, _# u1 {
  14. }if (empty($thum_url)) {
    9 h$ i6 @* M- Y
  15. srand((double)microtime()*1000000); ; H, Y& {7 n7 {& h
  16. $randval   =   rand(0,9); 3 ?5 S  k2 z% D2 ^8 j% g
  17. $thum_url = BLOG_URL.'content/templates/shuyong_net-sf/images/shuyong_net/'.$randval.'.jpg';} //随机图片路径
    ' `; G# L+ v. q5 y% ~0 c' x
  18. }echo $thum_url;}
    ) e" N* o* F: F+ @5 y
  19. ?>
复制代码
然后在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码:<img src="<?php sheli_fjimg($value['logid']); ?>" >. e9 U8 X/ L# Z" z( x3 \1 K7 `
优缺点:优点:上传图片无论是否插入了正文,都可以读取第一张显示。+ s) {) G7 V0 i# L. G6 ]
缺点:一是只能读取上传的第一张图片。
% h. ?' y, z0 z7 u
* F2 c4 H6 s/ Z8 ?2 p2.读取正文的第一张图片) \! |, @5 v. @0 i2 `) _6 A
原理:直接从正文代码——包括注释代码——中获取第一张图片的信息;如果正文中没有图片,则显示默认图片或者随机图片。
6 G) y) m3 w: W4 |% z* U) ?* {, S8 \方法:先将获取附件图片的方法定义成一个函数,放在模板文件module.php中(代码如下),位置随便。
  1. <?php2 q9 Z- b2 E. O: w
  2. //获取文章中第一张图片,如果没有就调用随机图片
    & E$ [" A; w" [8 s
  3. function sheli_zwimg($str){: {2 L) ^8 o2 c7 ~0 D) m& s9 X( c3 P
  4. preg_match_all("/\<img.*?src\="(.*?)"[^>]*>/i", $str, $match);1 T4 V" [2 I7 }7 l2 p  D
  5. if(!empty($match[1])){echo $match[1][0];}else{( ^; p: x- x2 k0 h
  6. echo TEMPLATE_URL . 'images/shuyong_net_wzimg/'.rand(1,20).'.jpg'; //随机图片路径及图片命名1.jpg……20.jpg$ J( f" m2 z: {# L( j! L# O5 O
  7. }}
    3 t4 h2 v6 a2 U* B; n! ]
  8. ?>
复制代码
在你需要的地方,emlog一般是在log_list.php(当然也可以在你自己的文件)相应的地方插入下面代码: <img src="<?php sheli_zwimg($value['content']); ?>"# c3 S) H) I0 W- _" u+ b  L

以下代码为调用正文第一张图片,没有图片则自定义,也可以空白,直接放在你要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; ?>
复制代码

9 S. J3 Z. T5 f: l

全部评论 0

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