
2、織夢的文章內容一般在放在dede_addonarticle表body字段中。

(1)、選擇好數據表和字段。
(2)、選擇替換方式為正則表達式,填寫主鍵字段(表的主鍵)。
(3)、填寫被替換內容,正則表達式:
<img(.*)src=\"([^\"]+)\"[^>]+>
(5)、根據需要填寫替換條件(如aid=123)。
(6)、輸入安全碼,開始替換。
如果上述都填寫正確,應該會出現成功替換個數。如果沒有,那很大程度上是正則出錯了。
在網上找了很多正則img標簽的,不過測試了一下都沒用。
織夢處理數據庫替換的文件在后台的sys_data_replace.php中,代碼如下:
//獲取替換條件 $condition = empty($condition) ? '' : " And $condition "; //被替換內容,這里就是我們填寫的正則 $rpstring = stripslashes($rpstring); //簡單的進行字符串轉義替換 $rpstring2 = str_replace("\\","\\\\",$rpstring); $rpstring2 = str_replace("'","\\'",$rpstring2); //構造sql語句進行查詢,注意這里的$rpstring2跟下面php用到的正則$rpstring實際上是一樣的。 //那么問題就來了,網上很多正則標簽在PHP下測試是可以的,不過到MySQL下就不行了。 //百度了一下發現,MySQL不支持正則的零寬斷言,對正則的支持也很簡單。 $dsql->SetQuery("SELECT $keyfield,$rpfield FROM $exptable WHERE $rpfield REGEXP '$rpstring2' $condition "); $dsql->Execute(); $tt = $dsql->GetTotalRow(); if($tt==0) { ShowMsg("根據你指定的正則,找不到任何東西!","javascript:;"); exit(); } $oo = 0; while($row = $dsql->GetArray()) { $kid = $row[$keyfield]; //通過PHP的正則替換把結果集中的數據替換 $rpf = preg_replace("#".$rpstring."#i", $tostring, $row[$rpfield]); $rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield='$rpf' WHERE $keyfield='$kid' "); if($rs) { $oo++; } } $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`"); ShowMsg("共找到 $tt 條記錄,成功替換了 $oo 條!", "javascript:;"); exit();