PHP在文章无缩略图时抓取单张或者多张文章内容图片!

来源:互联网 发布:修车软件下载 编辑:程序博客网 时间:2024/06/05 03:32

这个是之前在DESTOON手机版上二开的功能,参照过别人的方法,记录下,免得以后忘记!

1.写一个方法专门做抓取图片。

function getImgs($content,$order='ALL'){    $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";    preg_match_all($pattern,$content,$match);    if(isset($match[1])&&!empty($match[1])){        if($order==='ALL'){            return $match[1];        }        if(is_numeric($order)&&isset($match[1][$order])){            return $match[1][$order];        }    }    return '';}

2.利用查询出列表页的文章ID去查询内容

$result = $db->query("SELECT ".$MOD['fields']." FROM {$table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize");    while($r = $db->fetch_array($result)) {        if($kw) $r['title'] = str_replace($kw, '<b class="f_red">'.$kw.'</b>', $r['title']);        $r['linkurl'] = mobileurl($moduleid, 0, $r['itemid']);        $r['date'] = timetodate($r[$time], $page < 4 ? 2 : 3);        $lists[] = $r;    }        // 获取内容foreach($lists as $key=>$val){    $t = $db->query("SELECT content FROM destoon_article_data_21 WHERE itemid=".$val['itemid']);    while($res = $db->fetch_array($t)){        $content = video5($res['content']);        $content = str_replace('<hr class="de-pagebreak" />', '', $content);        //调用方法        $val['content'] = getImgs($content);        $lists[$key] = $val;    }}// var_dump($lists);die;

3.模板中使用

{loop $lists $vv}<li>    <a href="{$vv[linkurl]}">        <div class="{if count($vv[content])==1 && !empty($vv[content])}article_left{/if}">        <dt>{$vv[title]}</dt>        <dd>{php $res = dsubstr($vv['introduce'],'80','...');echo str_replace(' ','',$res);}</dd>        </div>        <div class="{if count($vv[content])==1 && !empty($vv[content])}article_right{/if}">        <dd>            {if $vv[content]}            {loop $vv[content] $k $v}                {php if($k >=3) break;}                <img src="{$v}" id="{if count($vv[content])==1 && !empty($vv[content])}article_img{/if}"/>            {/loop}            {/if}        </dd>        </div>        <div class="clear"></div>    </a></li>{/loop}
原创粉丝点击