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开发中常用的字符串操作函数
Feb 08 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
Web程序工作原理详解
Dec 25 PHP
PHP中is_file()函数使用指南
May 08 PHP
php结合curl实现多线程抓取
Jul 09 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
Thinkphp单字母函数使用指南
May 08 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 PHP
PHP设计模式之命令模式示例详解
Dec 20 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
长波有什么东西
2021/03/01 无线电
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
vue组件间通信解析
2017/03/01 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
python中反射用法实例
2015/03/27 Python
python中threading超线程用法实例分析
2015/05/16 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python画图高斯分布的示例
2019/07/10 Python
python关闭占用端口方式
2019/12/17 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
护士自我鉴定范文
2013/10/06 职场文书
机房搬迁方案
2014/05/01 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
校运动会广播稿300字
2014/10/07 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
交通安全教育心得体会
2016/01/15 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
Js类的构建与继承案例详解
2021/09/15 Javascript
HDFS免重启挂载新磁盘
2022/04/06 Servers