📄 inc_functions.php
字号:
$g_ftpLink = ftp_connect($cfg_ftp_host,$cfg_ftp_port);
if(!$g_ftpLink){ echo "连接FTP失败!"; exit(); }
if(!ftp_login($g_ftpLink,$cfg_ftp_user,$cfg_ftp_pwd)){ echo "登陆FTP失败!"; exit(); }
}
}
//关闭FTP连接
function CloseFtp(){
global $g_ftpLink;
if($g_ftpLink) @ftp_quit($g_ftpLink);
}
//通用的创建目录的函数
function MkdirAll($truepath,$mmode){
global $cfg_ftp_mkdir,$cfg_isSafeMode;
if($cfg_isSafeMode||$cfg_ftp_mkdir=='Y'){ return FtpMkdir($truepath,$mmode); }
else{
if(!file_exists($truepath)){
mkdir($truepath,$GLOBALS['cfg_dir_purview']);
chmod($truepath,$GLOBALS['cfg_dir_purview']);
return true;
}else{
return true;
}
}
}
//通用的更改目录或文件权限的函数
function ChmodAll($truepath,$mmode){
global $cfg_ftp_mkdir,$cfg_isSafeMode;
if($cfg_isSafeMode||$cfg_ftp_mkdir=='Y'){ return FtpChmod($truepath,$mmode); }
else{ return chmod($truepath,'0'.$mmode); }
}
//创建多层次的目录
function CreateDir($spath,$siterefer="",$sitepath=""){
if(!isset($GLOBALS['__funAdmin'])) require_once(dirname(__FILE__)."/inc/inc_fun_funAdmin.php");
return SpCreateDir($spath,$siterefer,$sitepath);
}
//过滤用户输入用于查询的字符串
function StringFilterSearch($str,$isint=0){
return $str;
}
//会员校对密码
//把用户的密码经过此函数后与数据库的密码对比
function GetEncodePwd($pwd){
global $cfg_pwdtype,$cfg_md5len,$cfg_ddsign;
$cfg_pwdtype = strtolower($cfg_pwdtype);
if($cfg_pwdtype=='md5'){
if(empty($cfg_md5len)) $cfg_md5len = 32;
if($cfg_md5len>=32) return md5($pwd);
else return substr(md5($pwd),0,$cfg_md5len);
}else if($cfg_pwdtype=='dd'){
return DdPwdEncode($pwd,$cfg_ddsign);
}else if($cfg_pwdtype=='md5m16'){
return substr(md5($pwd),8,16);
}else{
return $pwd;
}
}
//用户ID和密码或其它字符串安全性测试
function TestStringSafe($uid){
if($uid!=addslashes($uid)) return false;
if(ereg("[><\$\r\n\t '\"`\\]",$uid)) return false;
return true;
}
//Dede密码加密算法
//加密程序
function DdPwdEncode($pwd,$sign=''){
global $cfg_ddsign;
if($sign=='') $sign = $cfg_ddsign;
$rtstr = '';
$plen = strlen($pwd);
if($plen<10) $plenstr = '0'.$plen;
else $plenstr = "$plen";
$sign = substr(md5($sign),0,$plen);
$poshandle = mt_rand(65,90);
$rtstr .= chr($poshandle);
$pwd = base64_encode($pwd);
if($poshandle%2==0){
$rtstr .= chr(ord($plenstr[0])+18);
$rtstr .= chr(ord($plenstr[1])+36);
}
for($i=0;$i<strlen($pwd);$i++){
if($i < $plen){
if($poshandle%2==0) $rtstr .= $pwd[$i].$sign[$i];
else $rtstr .= $sign[$i].$pwd[$i];
}else{ $rtstr .= $pwd[$i]; }
}
if($poshandle%2!=0){
$rtstr .= chr(ord($plenstr[0])+20);
$rtstr .= chr(ord($plenstr[1])+25);
}
return $rtstr;
}
//解密程序
function DdPwdDecode($epwd,$sign=''){
global $cfg_ddsign;
$n1=0;
$n2=0;
$pwstr='';
$restr='';
if($sign=='') $sign = $cfg_ddsign;
$rtstr = '';
$poshandle = ord($epwd[0]);
if($poshandle%2==0)
{
$n1 = chr(ord($epwd[1])-18);
$n2 = chr(ord($epwd[2])-36);
$pwstr = substr($epwd,3,strlen($epwd)-3);
}else{
$n1 = chr(ord($epwd[strlen($epwd)-2])-20);
$n2 = chr(ord($epwd[strlen($epwd)-1])-25);
$pwstr = substr($epwd,1,strlen($epwd)-3);
}
$pwdlen = ($n1.$n2)*2;
$pwstrlen = strlen($pwstr);
for($i=0;$i < $pwstrlen;$i++)
{
if($i < $pwdlen){
if($poshandle%2==0){
$restr .= $pwstr[$i]; $i++;
}else{
$i++;
$restr .= $pwstr[$i];
}
}else{ $restr .= $pwstr[$i]; }
}
$restr = base64_decode($restr);
return $restr;
}
/*----------------------
过滤HTML代码的函数
-----------------------*/
function htmlEncode($string) {
$string=trim($string);
$string=str_replace("&","&",$string);
$string=str_replace("'","'",$string);
$string=str_replace("&amp;","&",$string);
$string=str_replace("&quot;",""",$string);
$string=str_replace("\"",""",$string);
$string=str_replace("&lt;","<",$string);
$string=str_replace("<","<",$string);
$string=str_replace("&gt;",">",$string);
$string=str_replace(">",">",$string);
$string=str_replace("&nbsp;"," ",$string);
$string=nl2br($string);
return $string;
}
function filterscript($str) {
$str = eregi_replace("iframe","iframe",$str);
$str = eregi_replace("script","script",$str);
return $str;
}
function AjaxHead()
{
global $cfg_ver_lang;
@header("Pragma:no-cache\r\n");
@header("Cache-Control:no-cache\r\n");
@header("Expires:0\r\n");
@header("Content-Type: text/html; charset={$cfg_ver_lang}");
}
function getarea($areaid)
{
global $dsql;
if($areaid==0) return '';
if(!is_object($dsql)) $dsql = new dedesql(false);
$areaname = $dsql->GetOne("select name from #@__area where id=$areaid");
return $areaname['name'];
}
//用户自行扩展function
if(file_exists( dirname(__FILE__).'/inc_extend_functions.php' )){
require_once(dirname(__FILE__).'/inc_extend_functions.php');
}
//--------------------
// 获得附加表和主表名称
//----------------------
function GetChannelTable($dsql,$id,$formtype='channel')
{
global $cfg_dbprefix;
$retables = array();
$oldarrays = array(1=>'addonarticle',2=>'addonimages',3=>'addonsoft',4=>'addonflash',5=>'addonproduct',-2=>'addoninfos',-1=>'addonspec');
if(isset($oldarrays[$id]) && $formtype!='arc')
{
$retables['addtable'] = $cfg_dbprefix.$oldarrays[$id];
$retables['maintable'] = $cfg_dbprefix.'archives';
if($id==-1) $retables['maintable'] = $cfg_dbprefix.'archivesspec';
else if($id==-2) $retables['maintable'] = $cfg_dbprefix.'infos';
$retables['channelid'] = $id;
}else
{
if($formtype=='arc'){
$retables = $dsql->GetOne(" select c.ID as channelid,c.maintable,c.addtable from `#@__full_search` a left join #@__channeltype c on c.ID = a.channelid where a.aid='$id' ",MYSQL_ASSOC);
}
else{
$retables = $dsql->GetOne(" Select ID as channelid,maintable,addtable From #@__channeltype where ID='$id' ",MYSQL_ASSOC);
}
if(!isset($retables['maintable'])) $retables['maintable'] = $cfg_dbprefix.'archives';
if(!isset($retables['addtable'])) $retables['addtable'] = '';
}
return $retables;
}
//-----------------------
//获取一条索引ID
//-----------------------
function GetIndexKey($dsql,$typeid=0,$channelid=0)
{
global $typeid,$channelid,$arcrank,$title,$cfg_plus_dir;
$typeid = (empty($typeid) ? 0 : $typeid);
$channelid = (empty($channelid) ? 0 : $channelid);
$arcrank = (empty($arcrank) ? 0 : $arcrank);
$iquery = "INSERT INTO `#@__full_search` (`typeid` , `channelid` , `adminid` , `mid` , `att` , `arcrank` ,
`uptime` , `title` , `url` , `litpic` , `keywords` , `addinfos` , `digg` , `diggtime` )
VALUES ('$typeid', '$channelid', '0', '0', '0', '$arcrank',
'0', '$title', '', '', '', '', '0', '0');
";
$dsql->ExecuteNoneQuery($iquery);
return $dsql->GetLastID();
}
//-----------------------
//更新一条整站搜索的索引记录
//-----------------------
function WriteSearchIndex($dsql,&$datas)
{
UpSearchIndex($dsql,$datas);
}
function UpSearchIndex($dsql,&$datas)
{
$addf = '';
foreach($datas as $k=>$v){
if($k!='aid') $addf .= ($addf=='' ? "`$k`='$v'" : ",`$k`='$v'");
}
$uquery = "update `#@__full_search` set $addf where aid = '".$datas['aid']."';";
$rs = $dsql->ExecuteNoneQuery($uquery);
if(!$rs){
$gerr = $dsql->GetError();
//$tbs = GetChannelTable($dsql,$datas['channelid'],'channel');
//$dsql->ExecuteNoneQuery("Delete From `{$tbs['maintable']}` where ID='{$datas['aid']}'");
//$dsql->ExecuteNoneQuery("Delete From `{$tbs['addtable']}` where aid='{$datas['aid']}'");
//$dsql->ExecuteNoneQuery("Delete From `#@__full_search` where aid='{$datas['aid']}'");
echo "更新整站索引时失败,错误原因: [".$gerr."]";
echo "<br /> SQL语句:<font color='red'>{$uquery}</font>";
$dsql->Close();
exit();
}
return $rs;
}
//
//检查某栏目下级是否包含特定频道的内容
//
function TestHasChannel($cid,$channelid,$issend=-1,$carr='')
{
global $_Cs;
if(!is_array($_Cs) && !is_array($carr)){ require_once(dirname(__FILE__)."/../data/cache/inc_catalog_base.php"); }
if($channelid==0) return 1;
if(!isset($_Cs[$cid])) return 0;
if($issend==-1){
if($_Cs[$cid][1]==$channelid||$channelid==0) return 1;
else{
foreach($_Cs as $k=>$vs){
if($vs[0]==$cid) return TestHasChannel($k,$channelid,$issend,$_Cs);
}
}
}else
{
if($_Cs[$cid][2]==$issend && ($_Cs[$cid][1]==$channelid||$channelid==0)) return 1;
else{
foreach($_Cs as $k=>$vs){
if($vs[0]==$cid) return TestHasChannel($k,$channelid,$issend,$_Cs);
}
}
}
return 0;
}
//更新栏目索引缓存
function UpDateCatCache($dsql)
{
$cache1 = dirname(__FILE__)."/../data/cache/inc_catalog_base.php";
$dsql->SetQuery("Select ID,reID,channeltype,issend From #@__arctype");
$dsql->Execute();
$fp1 = fopen($cache1,'w');
$phph = '?';
$fp1Header = "<{$phph}php\r\nglobal \$_Cs;\r\n\$_Cs=array();\r\n";
fwrite($fp1,$fp1Header);
while($row=$dsql->GetObject()){
fwrite($fp1,"\$_Cs[{$row->ID}]=array({$row->reID},{$row->channeltype},{$row->issend});\r\n");
}
fwrite($fp1,"{$phph}>");
fclose($fp1);
}
//邮件发送函数
function sendmail($email, $mailtitle, $mailbody, $headers)
{
global $cfg_sendmail_bysmtp, $cfg_smtp_server, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_user, $cfg_smtp_password, $cfg_adminemail;
if($cfg_sendmail_bysmtp == 'Y'){
$mailtype = 'TXT';
require_once(dirname(__FILE__).'/mail.class.php');
$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
$smtp->debug = false;
$smtp->sendmail($email, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
}else{
@mail($email, $mailtitle, $mailbody, $headers);
}
}
function highlight($string, $words, $hrefs='',$pretext='', $step='')
{
//后两个变量为系统继承变量,不可指定
if($step != 'me'){
return preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$words, \$hrefs, '\\1', 'me')", $string);
}
if(is_array($words)){
$string = str_replace('\"', '"', $string);
foreach($words as $k => $word){
if(empty($hrefs[$k])){
$string = preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$word, '', '\\1', 'me')", $string);
}else{
$string = preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$word, \$hrefs[\$k], '\\1', 'me')", $string);
}
}
return $pretext.$string;
}else{
if($hrefs == ''){
$string = str_replace($words,'<strong><font color="#ff0000">'.$words.'</font></strong>',$string);
}else{
if(strpos($string, $words) !== false){
$string = str_replace($words, '<a href="'.$hrefs.'" style="color:#ff0000;font-weight:bold;">'.$words.'</a>', $string);
}
}
return $pretext.$string;
}
}
$startRunMe = ExecTime();
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -