無憂小編在自己php空間中的一個網站由以前采集里面有很多連接沒有過濾掉,現在想再過濾這些連接了,在網上搜尋了很多,終于找到了一個解決辦法,由于涉及到正則匹配與SQL調用的技巧,無憂主機小編在這里為大家介紹一下關于dedecms批量替換文章中超鏈接的方法分享給、給各位朋友有需要的參考. 首先我們在主網站空間的根目錄下創建一個replace.php文件,將一下代碼添加進去:
require("data/common.inc.php"); $conn=mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd) or die("數據庫服務器鏈接失敗"); mysql_select_db($cfg_dbname) or die ("數據庫打開失敗"); mysql_query("SET NAMES 'gbk'"); $sql="select * from {$cfg_dbprefix}addonarticle order by aid desc"; $result=mysql_query($sql); while($rows=mysql_fetch_array($result)) { $body=$rows["body"]; $newbody=preg_replace("/(?<=href=)([^>]*)(?=>)/i","http://www.51php.com", $body); $sqlu="update {$cfg_dbprefix}addonarticle set body='".$newbody."' where aid=".$rows["aid"]; $resultu=mysql_query($sqlu); if(!$resultu) { $eoo[]=$rows["aid"]; } } if(isset($eoo)) { echo "有錯誤,有錯誤的ID如下:"; print_r($eoo); } else { echo "執行成功"; } ?> 這是一種可行的方法,還有一種辦法在dedecms后臺中執行sql命令方式下載替換,語句 DEDECMS SQL命令批量替換。更改文章中的內容,代碼如下: update dede_addonarticle set body=replace(body,'原來的字符','替換后的字符')批量替換文章模型中內容部分超鏈接,代碼如下:
Update dede_addonarticle set <pre>body=replace(body,'href="http://www.xxxx.net','href="http://www.51php.com');</pre>
新聞熱點
疑難解答