关闭

dedecms不生成缩略图提取第一张图片最为缩略图

1894人阅读 评论(0) 收藏 举报

 

<?php 
/*
1. 配置好你的数据库连接
2. 注意数据表名的前缀 默认为dede_
3. 一定要先备份你的数据库 或备份dede_archives表 如产生损失本人概不负责
*/
//数据库连接设置
$ip = "localhost"//地址
$user = "root"//用户名
$pw = ""//密码
$db = "dedecmsv4"//表名
$conn=mysql_connect ($ip,$user,$pw);
mysql_select_db($db);
mysql_query("set names gbk"); //设置编码为 GBK

//开始!获取body数据

function body($id){
$exec="select * from dede_addonarticle where aid = '".$id."'"
$result=mysql_query($exec);
$rs=mysql_fetch_object($result);
$id = $rs->body ; 
return $id =$id ;
}
//结束!获取body数据

//开始!提取变量中第一个图片地址

function bodyimg($obj) {

if(isset($obj)){
  
if ( preg_match"<img.*src=[/"](.*?)[/"].*?>", $obj, $regs ) ) {   //使用正则获取第一幅图像地址
    return $obj = $regs[1] ;
  } 
else {
    
echo "Erro:没有图片地址!<br>";
    
return $obj = 1 ;
  }
}


}
//结束!提取变量中第一个图片地址

//开始 修改rchives,插入获取的图像地址

function changearchives($pic,$id) {
$sql="UPDATE `dede_archives`
SET `litpic` = '
".$pic."'
WHERE `id` = '
".$id."'";
$result=mysql_query($sql);
if($result==1echo "修改数据成功!<br>"
else echo "修改数据失败!<br>";
}
//结束 修改rchives,插入获取的图像地址

//显示数据表内容

$exec="select * from dede_archives where channel='1' and litpic = ''"//channel='1' 即文章频道 也可以使用typeid='' 
$result=mysql_query($exec);                               //指定栏目ID但只能是最小分类的ID, litpic = '' 意为缩略图地址为空
while($rs=mysql_fetch_object($result))
{

$id = $rs->ID; 
echo $id." ";
$body = body($id); //调用函数获取 body内容
$pic = bodyimg($body);   //调用函数获取 body里面的第一张图片地址
if ($pic<>1){         
changearchives(
$pic,$id);   //调用函数插入获取的地址
}
}

mysql_close($conn);
?> 

 

我也是刚刚学PHP 上面的代码也是东拼西凑起来的 做了详细的注释 初学者也可以来看看

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43005次
    • 积分:836
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:4篇
    • 译文:0篇
    • 评论:3条
    文章分类