織夢(mèng)dede后臺(tái)文章添加iframe視頻內(nèi)容保存文章后,iframe就變成了圖片鏈接。
解決方法
添加文章時(shí) 添加優(yōu)酷視頻 :<iframe height=498 width=510 src='http://player.youku.com/embed/XNDAzNTAzODE4OA==' frameborder=0 'allowfullscreen'></iframe>
提交后被替換成
<iframe frameborder="0" height="498" src=http://www.coolyo.com.cn/skin/default/image/nopic.gif width="510"></iframe>
經(jīng)測(cè)試,發(fā)現(xiàn)問(wèn)題出在保存之前對(duì)body內(nèi)容的處理上
打開(kāi) dede\inc\inc_archives_functions.PHP 找到
preg_match_all("/src=http://www.coolyo.com.cn/skin/default/image/nopic.gif'|\s]([^\"|^\'|^\s]*?)/isU",$body,$img_array);
改成
preg_match_all("/<img.*?src=http://www.coolyo.com.cn/skin/default/image/nopic.gif'|\s]([^\"|^\'|^\s]*?)/isU",$body,$img_array);
保存,完成,重新插入iframe代碼試試。
另外的方法:
//遠(yuǎn)程圖片本地化 if($remote==1) { $body = GetCurContent($body); //dede/inc/inc_archives_functions.php 644行 }
把函數(shù)GetCurContent做如下修改可暫時(shí)解決(未側(cè)式是否會(huì)引起其他問(wèn)題,應(yīng)該把所有的圖片格式都枚舉出來(lái))
function GetCurContent($body) { global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir,$arcID,$cuserLogin,$dSQL; $cfg_uploaddir = $cfg_image_dir; $htd = new DedeHttpDown(); $basehost = "http://".$_SERVER["HTTP_HOST"]; $img_array = array(); preg_match_all("/src=http://www.coolyo.com.cn/skin/default/image/nopic.gif'|\s]([^\"|^\'|^\s]*?)/isU",$body,$img_array); $img_array = array_unique($img_array[1]); $imgUrl = $cfg_uploaddir.'/'.MyDate("ymd", time()); $imgPath = $cfg_basedir.$imgUrl; if(!is_dir($imgPath.'/')) { MkdirAll($imgPath, $GLOBALS['cfg_dir_purview']); CloseFtp(); } $milliSecond = MyDate('His',time()); foreach($img_array as $key=>$value) { if(preg_match("#".$basehost."#i", $value)) { continue; } if($cfg_basehost != $basehost && preg_match("#".$cfg_basehost."#i", $value)) { continue; } if(!preg_match("#^(http|https):\/\/#i", $value)) { continue; } $htd->OpenUrl($value); $itype = $htd->GetHead("content-type"); $itype = substr($value, -4, 4); if(!preg_match("#\.(jpg|gif|png)#i", $itype)) { if($itype=='image/gif') { $itype = ".gif"; } else if($itype=='image/png') { $itype = ".png"; }else if($itype=='image/jpg'){ //不知道jpeg格式的是否一樣,如果不一樣還得增加jpeg判斷 $itype = '.jpg'; } else { continue; //原函數(shù)未處理沒(méi)有后綴名的情況,應(yīng)該在這里判斷視頻或者。。。。。。,這樣寫(xiě)將不再解析除了 gif png jpg 以外的圖片格式,如 bmp } } $milliSecondN = dd2char($milliSecond.mt_rand(1000, 8000)); $value = trim($value); $rndFileName = $imgPath.'/'.$milliSecondN.'-'.$key.$itype; $fileurl = $imgUrl.'/'.$milliSecondN.'-'.$key.$itype; $rs = $htd->SaveToBin($rndFileName); if($rs) { $info = ''; $imginfos = GetImageSize($rndFileName, $info); $fsize = filesize($rndFileName); //保存圖片附件信息 $inquery = "INSERT INTO `axcms_uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid) VALUES ('{$arcID}','$rndFileName','$fileurl','1','{$imginfos[0]}','$imginfos[1]','0','$fsize','".time()."','".$cuserLogin->getUserID()."'); "; $dsql->ExecuteNoneQuery($inquery); $fid = $dsql->GetLastID(); AddMyAddon($fid, $fileurl); if($cfg_multi_site == 'Y') { $fileurl = $cfg_basehost.$fileurl; } $body = str_replace($value, $fileurl, $body); @WaterImg($rndFileName, 'down'); } } $htd->Close(); return $body; }