⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inc_functions.php

📁 强大的PHP内容管理系统尽量不要让站长把时间都花费在为您修正说明上。压缩包解压
💻 PHP
📖 第 1 页 / 共 2 页
字号:
		$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("&","&amp;",$string);
	$string=str_replace("'","&#39;",$string);
	$string=str_replace("&amp;amp;","&amp;",$string);
	$string=str_replace("&amp;quot;","&quot;",$string);
	$string=str_replace("\"","&quot;",$string);
	$string=str_replace("&amp;lt;","&lt;",$string);
	$string=str_replace("<","&lt;",$string);
	$string=str_replace("&amp;gt;","&gt;",$string);
	$string=str_replace(">","&gt;",$string);
	$string=str_replace("&amp;nbsp;","&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 + -