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


Posted in PHP onOctober 29, 2009

具体的实现代码,如下:下面会给简单的说明。

<?php 
/* 
1. 配置好你的数据库连接 
2. 注意数据表名的前缀 默认为dede_ 
3. 一定要先备份你的数据库 或备份dede_archives表 如产生损失本人概不负责 
*/ 
//数据库连接设置 
$ip = "localhost"; //地址 
$user = "3water"; //用户名 
$pw = "3water.com"; //密码 
$db = "3water"; //表名 
$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:没有图片地址!<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==1) echo "修改数据成功!<br>"; 
else echo "修改数据失败!<br>"; 
} 
//结束 修改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的版本,其它的版本应该也适应。多测试(备份的前提下。)

PHP 相关文章推荐
PHP添加MySQL数据记录代码
Jun 07 PHP
PHP 数组基础知识小结
Aug 20 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
sphinx增量索引的一个问题
Jun 14 PHP
php ajax 静态分页过程形式
Sep 02 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
php中把美国时间转为北京时间的自定义函数分享
Jul 28 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
PHP session会话操作技巧小结
Sep 27 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 PHP
PHP 简单日历实现代码
Oct 28 #PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 #PHP
php 文件上传系统手记
Oct 26 #PHP
php后台程序与Javascript的两种交互方式
Oct 25 #PHP
PHP 数组教程 定义数组
Oct 23 #PHP
PHP 判断变量类型实现代码
Oct 23 #PHP
PHP 变量类型的强制转换
Oct 23 #PHP
You might like
CodeIgniter基本配置详细介绍
2013/11/12 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
Angularjs上传图片实例详解
2017/08/06 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
python的常用模块之collections模块详解
2018/12/06 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
上班早退检讨书
2014/01/09 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
课外科技活动总结
2014/08/27 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
工作年限证明模板
2015/06/15 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
六年级作文之自救
2019/12/19 职场文书
JavaScript原型链详解
2021/11/07 Javascript
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技