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

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

复制代码 代码如下:

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

时间: 2024-11-08 21:17:17

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

ASP分析内容自动保存远程图片到本地并取得第一张图片创建缩略图

俺从SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码 <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderPath ------文件夹地址 '================================================== Function CheckDir2(byva

Wordpress自动提取内容中第一张图片作缩略图详解

在php中我们可以使用preg_match与preg_match_all来获取内容中所有图片地址. 第一步:在主题模板的function.php里添加下面的函数  代码如下 复制代码 //截取内容中第一张图片函数 function catch_that_image() {     global $post, $posts;     ob_start();     ob_end_clean();     preg_match('/<imgs[^<>]*?src=['"]([^'&

wordpress自动获取第一张图片当缩略图碰到的问题

最后用的是函数文件插入:  代码如下 复制代码 function catch_that_image() {     global $post, $posts;     $first_img = '';     ob_start();     ob_end_clean();     $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matc

PHP使用imagick读取PDF生成png缩略图的两种方法_php实例

一.ImageMagick是什么ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式.利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小.旋转.锐化.减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存.二.php_imagick什么一个可以供PHP调用ImageMagick功

使用php批量删除数据库下所有前缀为prefix_的表_php实例

以下就是统一删除前缀为"prefix_"的表的脚本: 复制代码 代码如下: <?php //设置数据库连接信息.数据库服务器地址,数据库用户名,数据密码 mysql_connect('数据库主机','数据库用户名','数据库密码'); //设置查询的数据库名称 mysql_select_db('数据库名'); $rs=mysql_query('show tables'); while($arr=mysql_fetch_array($rs)) { //设置要批量删除的数据库表前缀,

ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码_应用技巧

采集中 或者 在线添加文章中 都可以用到此功能 俺自己在baidu上搜索的保存远程图片到本地的代码 感觉比较难用点 而且没有现成的比较全的代码 俺也看不懂 俺从 SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码  复制代码 代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderP

ASP保存远程图片到本地 同时取得第一张图片

这是本人在SNA新闻采集系统 For 动力3.62 里使用的几个函数可以普遍的使用在采集 或者 在线添加文章中以下是函数程序代码<%'=================================================='函数名:DefiniteUrl'作 用:将相对地址转换为绝对地址'参 数:PrimitiveUrl ------要转换的相对地址'参 数:ConsultUrl ------当前网页地址'=======================================

帝国cms图片集分割输出全部图片和提取图片集第一张图片代码

图片集分割morepic字段内容: <?php $picr=explode(egetzy('rn'),$navinfor[morepic]); for($p=0;$p<count($picr);$p++) { $spicr=explode("::::::",$picr[$p]); ?> 小图地址:<img src="<?=$spicr[0]?>" /> 大图地址:<img src="<?=$spicr[

如何批量提取Word中的图片

  很多时候,我们需要将Word中的图片提取出来.那么,如何快速将其中的图片都提取出来呢?并且要保证是原图大小,不能是因排版后失真的图片.下面就告诉您如何原汁原味批量提取Word图片. 从Office 2007开始,Office采用Open XML文件格式来保存Word.PowerPoint.Excel的文档,所以文档是由特定的XML和图片.视频等元素所构成.它们按一个压缩包的形式组织在一起,可以从中直接将图片提取出来. 方法一: 通过解压软件可以直接解包DOCX文档,获得其中的图片等元素.首先