首先可以用正則寫個匹配內容裏的圖片
function delete_local($content, $userid, $ext = 'jpg|jpeg|gif|png|bmp|swf') {
if(preg_match_all("/src=([\"|']?)([^ \"'>]+\.($ext))\\1/i", $content, $matches)) {
foreach($matches[2] as $url) {
delete_upload($url, $userid);
}
unset($matches);
}
}
匹配出的$url 可以用刪除腳本去處理 類似 可以是這樣
function delete_upload($file, $userid) {
global $CFG, $DT, $DT_TIME, $ftp, $db;
if(!defined('DT_ADMIN') && (!$userid || $userid != match_userid($file))) return false;
if(!$file) return false;
$fileurl = $file;
if(strpos($file, 'file/upload') === false) {//Remote
if($DT['ftp_remote'] && $DT['remote_url']) {
if(strpos($file, $DT['remote_url']) !== false) {
if(!is_object($ftp)) {
require_once DT_ROOT.'/include/ftp.class.php';
$ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']);
}
$file = str_replace($DT['remote_url'], '', $file);
$ftp->dftp_delete($file);
if(strpos($file, '.thumb.') !== false) {
$ext = file_ext($file);
$F = str_replace('.thumb.'.$ext, '', $file);
$ftp->dftp_delete($F);
$F = str_replace('.thumb.'.$ext, '.middle.'.$ext, $file);
$ftp->dftp_delete($F);
}
if($DT['ftp_save']) delete_upload(DT_PATH.'file/upload/'.$file, $userid);
}
}
} else {
$exp = explode("file/upload/", $file);
$file = DT_ROOT.'/file/upload/'.$exp[1];
if(is_file($file) && strpos($exp[1], '..') === false) {
file_del($file);
if(strpos($file, '.thumb.') !== false) {
$ext = file_ext($file);
file_del(str_replace('.thumb.'.$ext, '', $file));
file_del(str_replace('.thumb.'.$ext, '.middle.'.$ext, $file));
}
}
}
if($DT['uploadlog']) $db->query("DELETE FROM {$db->pre}upload_".($userid%10)." WHERE item='".md5($fileurl)."'");
}