]*)\.(gif|jpg|png))/isU", $body, $img_array);
$img_array = array_unique($img_array[2]);
$imgUrl = $cfg_user_dir."/".$cfg_ml->M_ID;
$imgPath = $cfg_basedir.$imgUrl;
if(!is_dir($imgPath."/"))
{
MkdirAll($imgPath,$GLOBALS['cfg_dir_purview']);
CloseFtp();
}
$milliSecond = MyDate("ymdHis",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:\/\/#i", $value))
{
continue;
}
if($cfg_mb_rmdown=='Y')
{
$value = trim($value);
$itype = substr($value,-4,4);
if(!preg_match("#\.(gif|jpg|png)#i", $itype)) $itype = ".jpg";
$rndFileName = $imgPath."/".$milliSecond.$key.$itype;
$iurl = $imgUrl."/".$milliSecond.$key.$itype;
//下载并保存文件
//$rs = $htd->SaveToBin($rndFileName);
$rs = DownImageKeep($value, $rfurl, $rndFileName, '', 0, 30);
if($rs)
{
if($pagestyle > 2)
{
$litpicname = GetImageMapDD($iurl,$ddmaxwidth);
if($litpicname!='') SaveUploadInfo($title,$litpicname,1,$addinfos);
}
else
{
$litpicname = '';
}
if(empty($firstdd))
{
$firstdd = $litpicname;
if(!file_exists($cfg_basedir.$firstdd)) $firstdd = $iurl;
}
@WaterImg($rndFileName,'down');
$info = '';
$imginfos = GetImageSize($rndFileName,$info);
SaveUploadInfo($title,$iurl,1,$imginfos);
$rsimg .= "{dede:img ddimg='$litpicname' text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}\r\n";
}
}
else
{
$rsimg .= "{dede:img ddimg='$value' text='' width='0' height='0'} $value {/dede:img}\r\n";
}
}
return $rsimg;
}
/**
* 图集里大图的小图
*
* @param string $filename 文件名
* @param string $ddm 缩略图
* @param string $oldname 旧的名称
* @return string
*/
function GetImageMapDD($filename, $ddm, $oldname='')
{
if($oldname!='' && !preg_match("#^http:\/\/#i", $oldname))
{
$ddpicok = $oldname;
}
else
{
$ddn = substr($filename,-3);
$ddpicok = preg_replace("#\.".$ddn."$#", "-lp.".$ddn, $filename);
}
$toFile = $GLOBALS['cfg_basedir'].$ddpicok;
ImageResize($GLOBALS['cfg_basedir'].$filename, $ddm, 300, $toFile);
return $ddpicok;
}
/**
* 把上传的信息保存到数据库
*
* @param string $title 标题
* @param string $filename 文件名称
* @param string $medaitype 附件类型
* @param string $addinfos 附加信息
* @return string
*/
function SaveUploadInfo($title,$filename,$medaitype=1,$addinfos='')
{
global $dsql,$cfg_ml,$cfg_basedir;
if($filename=='')
{
return FALSE;
}
if(!is_array($addinfos))
{
$addinfos[0] = $addinfos[1] = $addinfos[2] = 0;
}
if($medaitype==1)
{
$info = '';
$addinfos = GetImageSize($cfg_basedir.$filename,$info);
}
$addinfos[2] = @filesize($cfg_basedir.$filename);
$row = $dsql->GetOne("SELECT aid,title,url FROM `#@__uploads` WHERE url LIKE '$filename' AND mid='".$cfg_ml->M_ID."'; ");
$uptime = time();
if(is_array($row))
{
$query = "UPDATE `#@__uploads` SET title='$title',mediatype='$medaitype',
width='{$addinfos[0]}',height='{$addinfos[1]}',filesize='{$addinfos[2]}',uptime='$uptime'
WHERE aid='{$row['aid']}'; ";
$dsql->ExecuteNoneQuery($query);
}
else
{
$inquery = "INSERT INTO `#@__uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
VALUES ('$title','$filename','$medaitype','".$addinfos[0]."','".$addinfos[1]."','0','".$addinfos[2]."','$uptime','".$cfg_ml->M_ID."'); ";
$dsql->ExecuteNoneQuery($inquery);
}
$fid = $dsql->GetLastID();
AddMyAddon($fid, $filename);
return TRUE;
}
/**
* 获得一个附加表单
*
* @param object $ctag
* @return string
*/
function GetFormItemA($ctag)
{
return GetFormItem($ctag,'member');
}
/**
* 处理不同类型的数据
*
* @param string $dvalue
* @param string $dtype
* @param int $aid
* @param string $job
* @param string $addvar
* @return string
*/
function GetFieldValueA($dvalue,$dtype,$aid=0,$job='add',$addvar='')
{
return GetFieldValue($dvalue,$dtype,$aid,$job,$addvar,'member');
}
/**
* 获得带值的表单(编辑时用)
*
* @param object $ctag
* @param string $fvalue 默认值
* @return string
*/
function GetFormItemValueA($ctag,$fvalue)
{
return GetFormItemValue($ctag,$fvalue,'member');
}
/**
* 载入自定义表单(用于发布)
*
* @access public
* @param string $fieldset
* @param string $loadtype
* @param bool $isprint 是否打印
* @return string
*/
function PrintAutoFieldsAdd(&$fieldset, $loadtype='all', $isprint=TRUE)
{
$dtp = new DedeTagParse();
$dtp->SetNameSpace('field','<','>');
$dtp->LoadSource($fieldset);
$dede_addonfields = '';
$addonfieldsname = '';
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $tid=>$ctag)
{
if($loadtype!='autofield' || $ctag->GetAtt('autofield')==1 )
{
$dede_addonfields .= ( $dede_addonfields=="" ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
$addonfieldsname .= ",".$ctag->GetName();
if ($isprint) echo GetFormItemA($ctag);
}
}
}
echo "";
// 增加一个返回
return $addonfieldsname;
}
/**
* 载入自定义表单(用于编辑)
*
* @param string $fieldset
* @param string $fieldValues
* @param string $loadtype
* @return string
*/
function PrintAutoFieldsEdit(&$fieldset, &$fieldValues, $loadtype='all')
{
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource($fieldset);
$dede_addonfields = "";
if(is_array($dtp->CTags))
{
foreach($dtp->CTags as $tid=>$ctag)
{
if($loadtype!='autofield'
|| ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) )
{
$dede_addonfields .= ( $dede_addonfields=='' ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') );
echo GetFormItemValueA($ctag,$fieldValues[$ctag->GetName()]);
}
}
}
echo "";
}
/**
* 创建指定ID的文档
*
* @param int $aid
* @param bool $ismakesign
* @return string
*/
function MakeArt($aid, $ismakesign=FALSE)
{
include_once(DEDEINC.'/arc.archives.class.php');
if($ismakesign)
{
$envs['makesign'] = 'yes';
}
$arc = new Archives($aid);
$reurl = $arc->MakeHtml();
if(isset($typeid))
{
$preRow = $arc->dsql->GetOne("SELECT id FROM `#@__arctiny` WHERE id<$aid AND arcrank>-1 AND typeid='$typeid' order by id desc");
$nextRow = $arc->dsql->GetOne("SELECT id FROM `#@__arctiny` WHERE id>$aid AND arcrank>-1 AND typeid='$typeid' order by id asc");
if(is_array($preRow))
{
$arc = new Archives($preRow['id']);
$arc->MakeHtml();
}
if(is_array($nextRow))
{
$arc = new Archives($nextRow['id']);
$arc->MakeHtml();
}
}
return $reurl;
}
/**
* 处理HTML文本、自动摘要、自动获取缩略图等
*
* @access public
* @param string $body 文档内容
* @param string $description 描述
* @param string $dtype 类型
* @return string
*/
function AnalyseHtmlBody($body, &$description, $dtype='')
{
global $cfg_mb_rmdown,$cfg_basehost,$cfg_auot_description,$arcID;
$autolitpic = (empty($autolitpic) ? '' : $autolitpic);
$body = stripslashes($body);
//远程图片本地化
if($cfg_mb_rmdown=='Y')
{
$body = GetCurContent($body);
}
//自动摘要
if($description=='' && $cfg_auot_description>0)
{
$description = cn_substr(html2text($body),$cfg_auot_description);
$description = trim(preg_replace('/#p#|#e#/','',$description));
$description = addslashes($description);
}
$body = addslashes($body);
return $body;
}
/**
* 获得文章body里的外部资源
*
* @access public
* @param string $body 内容
* @return string
*/
function GetCurContent(&$body)
{
global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_user_dir,$title,$cfg_ml;
include_once(DEDEINC."/dedecollection.func.php");
$htd = new DedeHttpDown();
$basehost = "http://".$_SERVER["HTTP_HOST"];
$img_array = array();
preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[2]);
$imgUrl = $cfg_user_dir."/".$cfg_ml->M_ID;
$imgPath = $cfg_basedir.$imgUrl;
if(!is_dir($imgPath."/"))
{
MkdirAll($imgPath,$GLOBALS['cfg_dir_purview']);
CloseFtp();
}
$milliSecond = MyDate("ymdHis",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:\/\/#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
{
$itype = '.jpg';
}
}
$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)
{
$body = str_replace($value,$fileurl,$body);
@WaterImg($rndFileName,'down');
}
$info = '';
$imginfos = GetImageSize($rndFileName,$info);
SaveUploadInfo($title,$fileurl,1,$imginfos);
}
$htd->Close();
return $body;
}