修復(fù)1:將開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽以在網(wǎng)頁(yè)源碼中第一次出現(xiàn)的位置為準(zhǔn)
修改文件/include/dedecollection.class.php
在成員函數(shù)GetHtmlArea中的
$posend = @strpos($html,$areaRules[1],$posstart);
語(yǔ)句前增加語(yǔ)句:
$posstart=$posstart+strlen($areaRules[0]);
將:
return substr($html,$posstart+strlen($areaRules[0]),$posend-$posstart-strlen($areaRules[0]));
替換為:
return substr($html,$posstart,$posend-$posstart);
修復(fù)2:下載圖片時(shí)對(duì)圖片的擴(kuò)展名判斷錯(cuò)誤
相同文件
將
eregi("/.gif",$v)
替換為
eregi("/.gif$",$url)
eregi("/.png",$v)
替換為
eregi("/.png$",$url)
修復(fù)3:采集軟件地址的正則表達(dá)式不準(zhǔn)確
/include/dedecollection.func.php
將TurnLinkTag函數(shù)中
preg_match_all("/<a(?:.*)href=['/"](.+?)['/"]([^>]+?)>(.+?)<//a>/is",$body,$match);
換為:
preg_match_all("/<a(?:[^/>]+?)href//s*=//s*[/'/"]?([^//s/>/"/']+)([^/>]+?)>(.+?)<//a>/is",$body,$match);
修復(fù)4:采集圖片的正則表達(dá)式不準(zhǔn)確
相同文件
將
preg_match_all('/src=[/'"](.+?)[/'"]/is',$body,$match);
$ttx = '';
if(is_array($match[1]) && count($match[1])>0)
{
for($i=0;isset($match[1][$i]);$i++)
{
$ttx .= "{dede:img text='' }".$match[1][$i]." {/dede:img}"."/r/n";
}
}
改為
$patten = "/<//s*img//s.*?src//s*=//s*([/"//'])?(?(1)(.*?)//1|([^//s//>/"//']+))/isx";
preg_match_all( $patten, $body, $images );
$returnArray1 = $images[2];
$returnArray2 = $images[3];
foreach ( $returnArray1 as $key => $value )
{
if ( $value )
{
$ttx .= "{dede:img ddimg='$litpicname' text='圖 ".($key+1)."'}".$value."{/dede:img}"."/r/n";
}
else
{
$ttx .= "{dede:img ddimg='$litpicname' text='圖 ".($key+1)."'}".$returnArray2[$key]."{/dede:img}"."/r/n";
}