dedecms 批量提取第一張圖片最為縮略圖的代碼(文章+軟件)
更新時(shí)間:2009年10月29日 21:53:58 作者:
用了dedecms自帶的縮略圖批量獲取,因?yàn)榇a好像是只適用于文字,對(duì)于軟件就不能了,或兩者都不能。從網(wǎng)站看到了這段代碼,對(duì)于dedecms 5.1是沒(méi)問(wèn)題的。
具體的實(shí)現(xiàn)代碼,如下:下面會(huì)給簡(jiǎn)單的說(shuō)明。
<?php
/*
1. 配置好你的數(shù)據(jù)庫(kù)連接
2. 注意數(shù)據(jù)表名的前綴 默認(rèn)為dede_
3. 一定要先備份你的數(shù)據(jù)庫(kù) 或備份dede_archives表 如產(chǎn)生損失本人概不負(fù)責(zé)
*/
//數(shù)據(jù)庫(kù)連接設(shè)置
$ip = "localhost"; //地址
$user = "jb51"; //用戶名
$pw = "www.dhdzp.com"; //密碼
$db = "jb51"; //表名
$conn=mysql_connect ($ip,$user,$pw);
mysql_select_db($db);
mysql_query("set names gbk"); //設(shè)置編碼為 GBK
//開(kāi)始!獲取body數(shù)據(jù)
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 ;
}
//結(jié)束!獲取body數(shù)據(jù)
//開(kāi)始!提取變量中第一個(gè)圖片地址
function bodyimg($obj) {
if(isset($obj)){
if ( preg_match( "<img.*src=[\"](.*?)[\"].*?>", $obj, $regs ) ) { //使用正則獲取第一幅圖像地址
return $obj = $regs[1] ;
} else {
echo "Erro:沒(méi)有圖片地址!<br>";
return $obj = 1 ;
}
}
}
//結(jié)束!提取變量中第一個(gè)圖片地址
//開(kāi)始 修改rchives,插入獲取的圖像地址
function changearchives($pic,$id) {
$sql="UPDATE `dede_archives`
SET `litpic` = '".$pic."'
WHERE `id` = '".$id."'";
$result=mysql_query($sql);
if($result==1) echo "修改數(shù)據(jù)成功!<br>";
else echo "修改數(shù)據(jù)失敗!<br>";
}
//結(jié)束 修改rchives,插入獲取的圖像地址
//顯示數(shù)據(jù)表內(nèi)容
$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); //調(diào)用函數(shù)獲取 body內(nèi)容
$pic = bodyimg($body); //調(diào)用函數(shù)獲取 body里面的第一張圖片地址
if ($pic<>1){
changearchives($pic,$id); //調(diào)用函數(shù)插入獲取的地址
}
}
mysql_close($conn);
?>
我也是剛剛學(xué)PHP 上面的代碼也是東拼西湊起來(lái)的 做了詳細(xì)的注釋 初學(xué)者也可以來(lái)看看
因?yàn)樯厦娴拇a不能自動(dòng)的獲取下一級(jí)目錄,所以比較手工添加目錄id,常用的語(yǔ)句有。
$exec="select * from dede_archives where typeid in(1,2,3) and litpic = ''"; //channel='1' 即文章頻道 也可以使用typeid=''
上面的代碼是獲取typeid為 1和2和3的數(shù)據(jù)。
如果執(zhí)行修改一個(gè)id可以用下面的語(yǔ)句
$exec="select * from dede_archives where typeid='1' and litpic = ''";
如果是頻道的可以用
$exec="select * from dede_archives where channel='1' and litpic = ''";
注意先備份,要不就不要隨便測(cè)試了,注意是 dedecms5.1的版本,其它的版本應(yīng)該也適應(yīng)。多測(cè)試(備份的前提下。)
復(fù)制代碼 代碼如下:
<?php
/*
1. 配置好你的數(shù)據(jù)庫(kù)連接
2. 注意數(shù)據(jù)表名的前綴 默認(rèn)為dede_
3. 一定要先備份你的數(shù)據(jù)庫(kù) 或備份dede_archives表 如產(chǎn)生損失本人概不負(fù)責(zé)
*/
//數(shù)據(jù)庫(kù)連接設(shè)置
$ip = "localhost"; //地址
$user = "jb51"; //用戶名
$pw = "www.dhdzp.com"; //密碼
$db = "jb51"; //表名
$conn=mysql_connect ($ip,$user,$pw);
mysql_select_db($db);
mysql_query("set names gbk"); //設(shè)置編碼為 GBK
//開(kāi)始!獲取body數(shù)據(jù)
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 ;
}
//結(jié)束!獲取body數(shù)據(jù)
//開(kāi)始!提取變量中第一個(gè)圖片地址
function bodyimg($obj) {
if(isset($obj)){
if ( preg_match( "<img.*src=[\"](.*?)[\"].*?>", $obj, $regs ) ) { //使用正則獲取第一幅圖像地址
return $obj = $regs[1] ;
} else {
echo "Erro:沒(méi)有圖片地址!<br>";
return $obj = 1 ;
}
}
}
//結(jié)束!提取變量中第一個(gè)圖片地址
//開(kāi)始 修改rchives,插入獲取的圖像地址
function changearchives($pic,$id) {
$sql="UPDATE `dede_archives`
SET `litpic` = '".$pic."'
WHERE `id` = '".$id."'";
$result=mysql_query($sql);
if($result==1) echo "修改數(shù)據(jù)成功!<br>";
else echo "修改數(shù)據(jù)失敗!<br>";
}
//結(jié)束 修改rchives,插入獲取的圖像地址
//顯示數(shù)據(jù)表內(nèi)容
$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); //調(diào)用函數(shù)獲取 body內(nèi)容
$pic = bodyimg($body); //調(diào)用函數(shù)獲取 body里面的第一張圖片地址
if ($pic<>1){
changearchives($pic,$id); //調(diào)用函數(shù)插入獲取的地址
}
}
mysql_close($conn);
?>
我也是剛剛學(xué)PHP 上面的代碼也是東拼西湊起來(lái)的 做了詳細(xì)的注釋 初學(xué)者也可以來(lái)看看
因?yàn)樯厦娴拇a不能自動(dòng)的獲取下一級(jí)目錄,所以比較手工添加目錄id,常用的語(yǔ)句有。
$exec="select * from dede_archives where typeid in(1,2,3) and litpic = ''"; //channel='1' 即文章頻道 也可以使用typeid=''
上面的代碼是獲取typeid為 1和2和3的數(shù)據(jù)。
如果執(zhí)行修改一個(gè)id可以用下面的語(yǔ)句
$exec="select * from dede_archives where typeid='1' and litpic = ''";
如果是頻道的可以用
$exec="select * from dede_archives where channel='1' and litpic = ''";
注意先備份,要不就不要隨便測(cè)試了,注意是 dedecms5.1的版本,其它的版本應(yīng)該也適應(yīng)。多測(cè)試(備份的前提下。)
相關(guān)文章
ThinkPHP5.1驗(yàn)證碼功能實(shí)現(xiàn)的示例代碼
這篇文章主要介紹了ThinkPHP5.1驗(yàn)證碼功能實(shí)現(xiàn)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
thinkphp解決數(shù)據(jù)傳入數(shù)據(jù)庫(kù)中特殊字符的問(wèn)題小結(jié)
這篇文章主要介紹了thinkphp解決數(shù)據(jù)傳入數(shù)據(jù)庫(kù)中特殊字符的問(wèn)題,為了解決這個(gè)問(wèn)題,你需要確保在插入數(shù)據(jù)庫(kù)之前,不對(duì)文本內(nèi)容進(jìn)行HTML實(shí)體編碼,需要的朋友可以參考下2024-03-03
thinkphp中session和cookie無(wú)效的解決方法
這篇文章主要介紹了thinkphp中session和cookie無(wú)效的解決方法,涉及針對(duì)BOM頭的分析與刪除方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
php 算法之實(shí)現(xiàn)相對(duì)路徑的實(shí)例
這篇文章主要介紹了php 算法之實(shí)現(xiàn)相對(duì)路徑的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
PHP和MYSQL實(shí)現(xiàn)分頁(yè)導(dǎo)航思路詳解
這篇文章主要介紹了PHP和MYSQL實(shí)現(xiàn)分頁(yè)導(dǎo)航思路詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
2017年最好用的9個(gè)php開(kāi)發(fā)工具推薦(超好用)
對(duì)于php初學(xué)者不知道哪個(gè)php開(kāi)發(fā)工具好用,下面小編給大家分享2017年最好用的9個(gè)php開(kāi)發(fā)工具推薦,感興趣的朋友一起看看吧2017-10-10
關(guān)于laravel 數(shù)據(jù)庫(kù)遷移中integer類型是無(wú)法指定長(zhǎng)度的問(wèn)題
今天小編就為大家分享一篇關(guān)于laravel 數(shù)據(jù)庫(kù)遷移中integer類型是無(wú)法指定長(zhǎng)度的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

