dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)

前端之家收集整理的这篇文章主要介绍了dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

具体的实现代码,如下:下面会给简单的说明。
<div class="codetitle"><a style="CURSOR: pointer" data="53178" class="copybut" id="copybut53178" onclick="doCopy('code53178')"> 代码如下:

<div class="codebody" id="code53178">
<?PHP
/
1. 配置好你的数据库连接
2. 注意数据表名的前缀 默认为dede_
3. 一定要先备份你的数据库 或备份dede_archives表 如产生损失本人概不负责
/
//数据库连接设置
$ip = "localhost"; //地址
$user = "jb51"; //用户名
$pw = "www.jb51.cc"; //密码
$db = "jb51"; //表名
$conn=MysqL_connect ($ip,$user,$pw);
MysqL_select_db($db);
MysqL_query("set names gbk"); //设置编码为 GBK //开始!获取body数据
function body($id){
$exec="select from dede_addonsoft where aid = '".$id."'";
$result=MysqL_query($exec);
$rs=MysqL_fetch_object($result);
$id = $rs->introduce ;
return $id =$id ;
}
//结束!获取body数据 //开始!提取变量中第一个图片地址
function bodyimg($obj) { if(isset($obj)){
if ( preg_match( "<img.
src=\"[\"].?>",$obj,$regs ) ) { //使用正则获取第一幅图像地址
return $obj = $regs[1] ;
} else {
echo "Erro:没有图片地址!
";
return $obj = 1 ;
}
}
}
//结束!提取变量中第一个图片地址 //开始 修改rchives,插入获取的图像地址
function changearchives($pic,$id) {
$sql="UPDATE dede_archives
SET litpic = '".$pic."'
WHERE id = '".$id."'";
$result=MysqL_query($sql);
if($result==1) echo "修改数据成功!
";
else echo "修改数据失败!
";
}
//结束 修改rchives,插入获取的图像地址 //显示数据表内容
$exec="select
from dede_archives where typeid in(494,495,496,497,498,499,500,501,502,503,504,374,375,376,377,378,379,488) 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 上面的代码也是东拼西凑起来的 做了详细的注释 初学者也可以来看看 因为上面的代码不能自动获取下一级目录,所以比较手工添加目录id,常用的语句有。
$exec="select from dede_archives where typeid in(1,2,3) and litpic = ''"; //channel='1' 即文章频道 也可以使用typeid=''
上面的代码获取typeid为 1和2和3的数据。
如果执行修改一个id可以用下面的语句
$exec="select
from dede_archives where typeid='1' and litpic = ''";
如果是频道的可以用
$exec="select * from dede_archives where channel='1' and litpic = ''";
注意先备份,要不就不要随便测试了,注意是 Dedecms5.1的版本,其它的版本应该也适应。多测试(备份的前提下。)

原文链接:https://www.f2er.com/php/28974.html

猜你在找的PHP相关文章