<?
// ------------------------------  定义 GET POST 接收函数   ------------------------------  开始
//定义 GET POST 接收函数
@$submitted_vars = strtolower( $_SERVER["REQUEST_METHOD"] )=='get' ? $_GET : $_POST;
// ------------------------------  定义 GET POST 接收函数   ------------------------------  结束

/*列表页显示当前栏目同等级的栏目名 征对此英文版所写*/
function list_sort_name_en( $table ,  $parentId = 3 , $showFid , $showAid ){ //$modify 修改时显示所属分类 $showPId 当前的分类 id

global $sortdb_en,$webdb;

$sortdb_en = '<SCRIPT language=JavaScript type=text/javascript>
function opencat(cat,img){
    //var cat = document.getElementById(cat); 
    //var img = document.getElementById(img); 
	if(cat.style.display=="none"){
	cat.style.display="";
	img.src="'.$webdb[www_url].'/images/ych/e.gif";
	}else{
	cat.style.display="none"; 
	img.src="'.$webdb[www_url].'/images/ych/c.gif";
	}
}   
</SCRIPT>
<div id="nav1">
';


    $sql="select * from `$table`  where `parentId` = {$parentId} ORDER BY `list` DESC";
    $result=mysql_query($sql);
    $i=0;
	while($rs=mysql_fetch_array($result)){
	
          if( $rs[s_bz_1] == 'pc' ){
		  
		  	if( $rs["class"] == "3" ){
				$sortdb_en .= '<div class="nav_t1" onclick="opencat(cat'.$i.',&#13;&#10; img'.$i.');" style="CURSOR: pointer">
				
				<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td width="12%"><IMG id="img'.$i.'" height="18" alt="Open" src="'.$webdb[www_url].'/images/ych/e.gif" width="19" name="img'.$i.'"></td> 
    <td width="88%"><a href="list.php?fid='.$rs[id].'">'.$rs[name].'</a></td> 
  </tr> 
</table> 

				</div>';
			}
		    
				##########################
					
					if(!empty($showAid)){
						$sql0="select * from `w6_module_content_index`  where `id` = {$showAid} ";
						$result0=mysql_query($sql0);
						$showFid = mysql_result($result0,"0","fid");
					}

					if($showFid == $rs["id"]){
					$sortdb_en .= '<div class="nav_t2" id="cat'.$i.'">';
					}else{
						$sql0="select * from `$table`  where `id` = {$showFid} ";
						$result0=mysql_query($sql0);
						$showParentId = mysql_result($result0,"0","parentId");
							if($showParentId == $rs["id"]){
							$sortdb_en .= '<div class="nav_t2" id="cat'.$i.'">';
							}else{
							//$sortdb_en .= '<div class="nav_t2" id="cat'.$i.'" style="DISPLAY: none">';//默认隐藏二级分类
							$sortdb_en .= '<div class="nav_t2" id="cat'.$i.'" >';//默认显示二级分类
							}
					
					}

				##########################

				$sortdb_en .= '
				<table width="100%" border="0" cellspacing="0" cellpadding="0" style="margin-top:2px; margin-bottom:2px;">';
				$s=0;
				$sql2="select * from `$table`  where `parentId` = {$rs[id]} ORDER BY `list` DESC";
				$result2=mysql_query($sql2);
				while($row2=mysql_fetch_array($result2)){
				$sortdb_en .= '<tr><td width="6%" height="22">&nbsp;</td><td width="4%"><IMG height="9" src="'.$webdb[www_url].'/images/ych/gif-0450.gif" width="5"></td><td width="90%"><a href="list.php?fid='.$row2[id].'">'.$row2[name].'</a></td></tr>
				';
				}
		  
				$s++;
				$sortdb_en .= '</table>';
				
				$sortdb_en .= '</div>';
				
		  }
		  
		  //list_sort_name_en( $table , $rs['id'] );
		  $i++; 
   }

$sortdb_en .= '</div>';


}



/**
*栏目密码函数
**/
function listpasswd($passwd){
	
	global $webdb,$job;
	
	$login_time = "10000";//总的单位时间 1h  =  3600s
	
	if($job == "login"){
	
		$passwd2=stripslashes($_POST["passwd"]);
		if( $passwd == $passwd2 ){
			$CookieTime=time()+$login_time;
			setcookie("CookieLoginWEB126", "1", $CookieTime,"/","");
		}else{
			//密码错误
			echo '<CENTER>您输入的密码错误！<br /><form name="form1" method="post" action="">请重新输入栏目密码:<input type="password" name="passwd"><input name="job" type="hidden" id="job" value="login"><input type="submit" name="Submit" value="提交"></form></CENTER>';
			exit();
		}
		
	}else{
	
		if(@$_COOKIE["CookieLoginWEB126"] == ""){//显示登录框
			echo '<CENTER><form name="form1" method="post" action="">请输入栏目密码:<input type="password" name="passwd"><input name="job" type="hidden" id="job" value="login"><input type="submit" name="Submit" value="提交"></form></CENTER>';
			exit();
		}
		
	}

}


//翻译
function Translate($str)
{
	//设置源语言
	$formlanguage="zh-CHS"; //简体中文
	//设置目标言
	$tolanguage="en"; //英文

	//转换编码
	$query = urlencode($str);
	//发送原文进行翻译
	$res = implode('', file('http://api.microsofttranslator.com/V1/Http.svc/Translate?AppId=5329DB9EEA2CAC9E080A4118CEAB8AF34AEA1C09&from='.$formlanguage.'&to='.$tolanguage.'&text='.$query));
	//返回数据
	return $res;
}


// ------去除 html 代码标签
function trimTags($string)
{
  $string=strip_tags($string);
  //$string=str_replace(" ","",$string);
  //$string=trim($string);
  return $string;
} 


/**
*过滤安全字符
**/
function filtrate($msg){
	//$msg = str_replace('&','&amp;',$msg);
	//$msg = str_replace(' ','&nbsp;',$msg);
	$msg = str_replace('"','&quot;',$msg);
	$msg = str_replace("'",'&#39;',$msg);
	$msg = str_replace("<","&lt;",$msg);
	$msg = str_replace(">","&gt;",$msg);
	$msg = str_replace("\t","   &nbsp;  &nbsp;",$msg);
	//$msg = str_replace("\r","",$msg);
	$msg = str_replace("   "," &nbsp; ",$msg);
	return $msg;
}

/**
*截取字符
**/
function get_word($content,$length,$more=1) {
	if(!$more){
		$length=$length+2;
	}
	if($length>10){
		$length=$length-2;
	}
	if($length && strlen($content)>$length){
		$num=0;
		for($i=0;$i<$length-1;$i++) {
			if(ord($content[$i])>127){
				$num++;
			}
		}
		$num%2==1 ? $content=substr($content,0,$length-2):$content=substr($content,0,$length-1);
		$more && $content.='..';
	}
	return $content;
}

function make_rand( $start = 0 , $end = 9 , $num = 1){

	//0-9 10数，取任意3个，且不能有相同数出现

	//$num = 3;//要产生多少个随机数;
	//$start = 0;//随机数起始位置,
	//$end = 9;//随机数结束位置
	$connt = 0;
	while($connt<$num)
	{
        $a[ ]=rand($start,$end);//产生随机数
        $ary=array_unique($a);//遍历数组$a，如有相同的值则剔除该值
        $connt=count($ary);
	}

	foreach ($ary as $key => $value)
	{ 
        @$show .= $value;
	}
	
	return $show;

}


function make_3_rand(){

	//0-9 10数，取任意3个，且不能有相同数出现

	$num = 3;//要产生多少个随机数;
	$start = 0;//随机数起始位置,
	$end = 9;//随机数结束位置
	$connt = 0;
	while($connt<$num)
	{
        $a[ ]=rand($start,$end);//产生随机数
        $ary=array_unique($a);//遍历数组$a，如有相同的值则剔除该值
        $connt=count($ary);
	}

	foreach ($ary as $key => $value)
	{ 
        @$show .= $value;
	}
	
	return $show;

}

function make_1_rand( $start = 0 , $end = 9 , $num = 1){

	//0-9 10数，取任意3个，且不能有相同数出现

	//$num = 3;//要产生多少个随机数;
	//$start = 0;//随机数起始位置,
	//$end = 9;//随机数结束位置
	$connt = 0;
	while($connt<$num)
	{
        $a[ ]=rand($start,$end);//产生随机数
        $ary=array_unique($a);//遍历数组$a，如有相同的值则剔除该值
        $connt=count($ary);
	}

	foreach ($ary as $key => $value)
	{ 
        @$show .= $value;
	}
	
	return $show;

}

/*

二维数组 排序
按照指定的键值进行排序，也可以指定升序或降序排序法（默认为升序）
$arrayList = array_sort($array,'key'); 

*/
function array_sort($arr,$keys,$type='asc'){ 
	$keysvalue = $new_array = array();
	foreach ($arr as $k=>$v){
		$keysvalue[$k] = $v[$keys];
	}
	if($type == 'asc'){
		asort($keysvalue);
	}else{
		arsort($keysvalue);
	}
	reset($keysvalue);
	foreach ($keysvalue as $k=>$v){
		$new_array[$k] = $arr[$k];
	}
	return $new_array; 
}

/*

删除数据空元素 支持比维数组

*/
function array_remove_empty($arr, $trim = true){ 
	foreach ($arr as $key => $value) { 
		if (is_array($value)) { 
			array_remove_empty($arr[$key]); 
		} else { 
			$value = trim($value); 
			if ($value == '') { 
				unset($arr[$key]); 
			} elseif ($trim) { 
				$arr[$key] = $value; 
			} 
		} 
	} 
	
	return $arr;
} 

/**
 *  获得当前的脚本网址
 *
 * @return    string
 */
if ( ! function_exists('GetCurUrl'))
{
    function GetCurUrl()
    {
        if(!empty($_SERVER["REQUEST_URI"]))
        {
            $scriptName = $_SERVER["REQUEST_URI"];
            $nowurl = $scriptName;
        }
        else
        {
            $scriptName = $_SERVER["PHP_SELF"];
            if(empty($_SERVER["QUERY_STRING"]))
            {
                $nowurl = $scriptName;
            }
            else
            {
                $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
            }
        }
        return $nowurl;
    }
}

/**
 *  获取用户真实地址
 *
 * @return    string  返回用户ip
 */
if ( ! function_exists('GetIP'))
{
	function GetIP(){
		if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
			$ip = getenv("HTTP_CLIENT_IP");
		else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
			$ip = getenv("HTTP_X_FORWARDED_FOR");
		else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
			$ip = getenv("REMOTE_ADDR");
		else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
			$ip = $_SERVER['REMOTE_ADDR'];
		else
			$ip = "unknown";
		return($ip);
	}
}

//静态网页处理
function Explain_HtmlUrl(){
	global $fid,$aid,$page,$WEBURL;
	if(strpos("$WEBURL","list.php?")){
		$detail=explode("list.php?",$WEBURL);
		$detail2=explode(".",$detail[1]);
		$rs=explode("-",$detail2[0]);
		$fid=$rs[0];
		$rs[1] ? $page=$rs[1] : $page=1;
	}
	if(strpos("$WEBURL","show.php?")){
		$detail=explode("show.php?",$WEBURL);
		$rs=explode(".",$detail[1]);
		$aid=$rs[0];
	}
	if(strpos("$WEBURL","list-")){
		$detail=explode("list-",$WEBURL);
		$detail2=explode(".",$detail[1]);
		$rs=explode("-",$detail2[0]);
		$fid=$rs[0];
		$rs[1] ? $page=$rs[1] : $page=1;
	}
	if(strpos("$WEBURL","show-")){
		$detail=explode("show-",$WEBURL);
		$rs=explode(".",$detail[1]);
		$aid=$rs[0];
	}
}



/**************************************************************************/

// 函数名: counter

// 功能: 计数和显示浏览数功能

//         如:counter("1","article")

// 参数:   $id    -- 记录 id
//         $table -- 查询的表名
//         $dis   -- 是否显示浏览数 0 -- 不显示 1 -- 显示
//         $row   -- 查询的字段名
/**************************************************************************/
function counter($id,$table,$dis=0,$row='count'){
////////////////////////  进行计数  ///////////////////////////////
$query="SELECT `id`,`$row` FROM `$table` WHERE `id`=$id";
//echo "<br><br>$query<br><br>";
$result=mysql_query($query);
$count=mysql_result($result,"0","$row");
//echo $count;
$count++;
if($dis==1)echo $count;
//echo "<br>$count";
$query="UPDATE `$table` SET `$row` = $count
         WHERE `id` = $id ";
$result=mysql_query($query);
////////////////////////  进行计数  ///////////////////////////////

return $count;
}


/*列表页显示当前栏目同等级的栏目名称*/
function the_sort_name( $fid , $table = "w6_sort" ){

    $sql="select * from `$table`  where `id` = $fid";
	$result=mysql_query($sql);
	$parentId = mysql_result($result,"0","parentId");
	if( $parentId == "0" ){
		$sql="select * from `$table`  where `parentId` = $fid ORDER BY `list` DESC";
		$result=mysql_query($sql);
    	while($rs=mysql_fetch_array($result)){
			$listdb[]=$rs;
		}
	}else{
		$sql="select * from `$table`  where `parentId` = {$parentId} ORDER BY `list` DESC";
		$result=mysql_query($sql);
    	while($rs=mysql_fetch_array($result)){
			$listdb[]=$rs;
		}
	}
	
	return $listdb;
	
}
/*列表页显示当前栏目下级的栏目名称*/
/*
function lower_sort_name( $fid , $table = "w6_sort" ){

	$sql="select * from `$table`  where `parentId` = $fid ORDER BY `list` DESC";
	$result=mysql_query($sql);
    while($rs=mysql_fetch_array($result)){
		$listdb[]=$rs;
	}

	return $listdb;
	
}
*/

/* 计算 当前栏目 下级的栏目 总数*/
function lower_sort_num( $fid , $table = "w6_sort" ){
	$sql="select `parentId` from `$table`  where `parentId` = $fid";
	$num = mysql_num_rows(mysql_query($sql));
	return $num;
}
/*列表页显示当前栏目下级的栏目名称*/
function lower_sort_name( $fid , $total='' , $page , $table = "w6_sort" ){

	if($total=='' || $total<=0){
		$sql="select * from `$table`  where `parentId` = $fid ORDER BY `list` DESC ";
	}else{
		$sql="select * from `$table`  where `parentId` = $fid";
		$sql .= ' ORDER BY `list` DESC LIMIT '.(($page-1)*$total).' , '.$total;
	}
	//exit($sql);

	$result=mysql_query($sql);
    while($rs=mysql_fetch_array($result)){
		$listdb[]=$rs;
	}

	return $listdb;
	
}



/*栏目列表*/
function list_allsort( $table ,  $parentId = 0 ){ //$modify 修改时显示所属分类 $showPId 当前的分类 id
    global $sortdb;
    $sql="select * from `$table`  where `parentId` = {$parentId} ORDER BY `list` DESC";
    $result=mysql_query($sql);
    while($rs=mysql_fetch_array($result)){
	
          $icon="";
		  for($i=1;$i<$rs['class'];$i++){
			  $icon.="&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;";
		  }
		  if($icon){
		  	  $icon=substr($icon,0,-24);
			  $icon.="--";
		  }
		  $rs['icon']=$icon;
		  $sortdb[]=$rs;
		  list_allsort( $table , $rs['id'] );
   }
}

//表单中显示的栏目列表
function formListSort( $table , $showPId = 0 , $modify = 0 ,  $parentId = 0 , $level = 1 ) //$modify 修改时显示所属分类 $showPId 当前的分类 id
   {
     $sql="select * from `$table`  where `parentId` = {$parentId}  ORDER BY `list` DESC";
	 //echo $sql;
    $result=mysql_query($sql);
    while($row=mysql_fetch_array($result))
       {
        $sortId=$row['id'];
		//echo "<br>".$sortId."<br>";
		$str = "<option value=\"$sortId\"";
		  if($modify == "1"){
		    if($showPId == $sortId){$str .= " selected=\"selected\"";}
		  }
		$str .= ">".str_repeat("--", $level-1) . $row['name']."</option>\n		  ";
		echo $str;
		 formListSort( $table , $showPId , $modify , $sortId, $level + 1 );
      }
}
/*
function list_allsort($parentId,$table='sort'){
	global $sortdb;
	$result=mysql_query("SELECT * FROM `$table` WHERE `id` = '".$parentId."'");
	while( $rs=mysql_fetch_array($result) ){
		$icon="";
		for($i=0;$i<$rs['class'];$i++){
			$icon.="&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;";
		}
		if($icon){
			$icon=substr($icon,0,-24);
			$icon.="--";
		}
		$rs[icon]=$icon;
		$sortdb[]=$rs;


		list_allsort($rs['parentId'],$table);
	}
}
*/

  //计算当前分类为几级分类
  function GetClass($parentId='0',$table='w6_sort',$lab='1'){
    global $class;
    if($lab == '1'){
	    if($parentId == 0){
		  $class = '1';
		}else{
		  $result=mysql_query("SELECT * FROM `$table` WHERE `id` = '".$parentId."'");
		  $parentId=mysql_result($result,"0","parentId");
		  if($parentId == 0){//第一次查询时为二级分类
		    $class="2";
		  }else{
		    $class = $class + 2;
			$lab++;
			GetClass($parentId,$table,$lab);
		  }	
		}
	   
    }else{
	  
	  $result=mysql_query("SELECT * FROM `$table` WHERE `id` = '".$parentId."'");
	  $parentId=mysql_result($result,"0","parentId");
	    if($parentId == 0){
			@$class++;
	    }else{
		  @$class++;
	      $lab++;
	      GetClass($parentId,$table,$lab);
	    }
		
    }

	return ($class);
  }

//取得大分类下的所有栏目的 FID
function getFid($fid){
	global $fids;
	//读出此栏目下的所有栏目 id
	$result=mysql_query("SELECT * FROM `w6_sort` WHERE `parentId` = '".$fid."'");
	while($rs=mysql_fetch_array($result)){
		$fids[] = $rs['id'];
		
		getFid ( $rs['id'] );
	}
	
	return $fids;
	
}


/*
计算此栏目列表的分页数，为栏目生成静态服务
*/
/*
function getPageNum($fid,$mid){
	$result=mysql_query("SELECT mid,fid FROM `w6_module_content_".$mid."` WHERE `fid` = '".$fid."'") or die("Could not connect: " . mysql_error());
	$num = mysql_num_rows($result);
	$pageNum = ceil( $num/$article_page_size );
	return $pageNum;
}
*/

/**
*分页

#page {
	float:left;
	margin:20px 0px 0px 56px;
	margin:20px 0px 0px 56px!important;
	margin:20px 0px 0px 28px;
	width:687px;
	height:20px;
}
#page a {
	border: 1px solid #CCCCCC;
	color: #666666;
	font-size: 12px;
	padding: 5px;
}
<div id="page">$showpage</div>

**/
function getpage($url,$rows=12,$total='',$page,$w=''){
	
	$label_page = 'page';
	
	if($w=='s'){
		$label_page = 'sPage';
	}

	if(!$page){
		$page=1;
	}
	$totalpage=@ceil($total/$rows);
	$nextpage=$page+1;
	$uppage=$page-1;
	if($nextpage>$totalpage){
		$nextpage=$totalpage;
	}
	if($uppage<1){
		$uppage=1;
	}
	$s=$page-3;
	if($s<1){
		$s=1;
	}
	$b=$s;
	for($ii=0;$ii<6;$ii++){
		$b++;
	}
	if($b>$totalpage){
		$b=$totalpage;
	}
	for($j=$s;$j<=$b;$j++){
		if($j==$page){
			@$show.=" <a href='#'><font color=red>$j</font></a>";
		}else{
			@$show.=" <a href=\"$url&$label_page=$j\" title=\"第{$j}页\">$j</a>";
			//@$show.=" <a href=\"$url-$j.htm\" title=\"第{$j}页\">$j</a>";//生成静态的地址
		}
	}
	//$showpage="<a href=\"$url-1.htm\" title=\"首页\">&lt;&lt;</A> <a href=\"$url-$uppage.htm\" title=\"上一页\">&lt;</A>  {$show}  <a href=\"$url-$nextpage.htm\" title=\"下一页\">&gt;</A> <a href=\"$url-$totalpage.htm\" title=\"尾页\">&gt;&gt;</A> <a href='#'><font color=red>$page</font>/$totalpage</a>";
	$showpage="<a href=\"$url&$label_page=1\" title=\"首页\">&lt;&lt;</A> <a href=\"$url&$label_page=$uppage\" title=\"上一页\">&lt;</A>  {$show}  <a href=\"$url&$label_page=$nextpage\" title=\"下一页\">&gt;</A> <a href=\"$url&$label_page=$totalpage\" title=\"尾页\">&gt;&gt;</A> <a href='#'><font color=red>$page</font>/$totalpage</a>";
    if($totalpage>1){
		return $showpage;
	}
}



/**
*取得随机字符
**/
function rands($length,$strtolower=1) {
	$hash = '';
	$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
	$max = strlen($chars) - 1;
	mt_srand((double)microtime() * 1000000);
	for($i = 0; $i < $length; $i++) {
		$hash .= $chars[mt_rand(0, $max)];
	}
	if($strtolower==1){
		$hash=strtolower($hash);
	}
	return $hash;
}


// ------------------------------  带有 htmlarea 在线编辑器的 txt 方式存储的 安全代码转换 ------------------------------ 开始
#  说明：htmlarea 能转换 html 代码,但不能给 " ' 等加 \ ，还有不能在 $ 前加 \ 
#        所以定义的 txt_htmlarea_addslashes 函数,通过 addslashes 转换 '" 等元素，通过 str_replace 转换 $ 元素
function txt_htmlarea_addslashes($text){
        $text = addslashes($text);
        $text = str_replace("$", "\\$", $text);
        return $text;
}
// ------------------------------  带有 htmlarea 在线编辑器的 txt 方式存储的 安全代码转换 ------------------------------ 结束

// ------------------------------  带有 htmlarea 在线编辑器的 txt 方式存储的 安全代码转换 ------------------------------ 开始
function txt_htmlarea_stripslashes($text){
        $text = stripslashes($text);
        $text = str_replace("\$", "$", $text);
        return $text;
}
// ------------------------------  带有 htmlarea 在线编辑器的 txt 方式存储的 安全代码转换 ------------------------------ 结束




// ------------------------------  $PHPcode  加亮的代码   ------------------------------  开始
#$PHPcode  加亮的代码
function HeighPHPcode($Heightstring){ 
do{ 
  $z=0; 
  if(preg_match("/<phpcode>(.*?)<\/phpcode>/s",$Heightstring,$reg)) { 
    $z=1; 
    $code=""; 
    ob_start(); 
    highlight_string($reg[1]); 
    $code = ob_get_contents(); 
    ob_end_clean(); 
    $reg[1] = addslashes($reg[1]); 
    $Heightstring=preg_replace("/<phpcode>(.*?)<\/phpcode>/s",$code,$Heightstring,1); 
    } 
}while($z); 
return $Heightstring; 
} 
// ------------------------------  $PHPcode  加亮的代码   ------------------------------  结束



// ------------------------------  文件操作函数   ------------------------------  开始
/**
*读文件函数
**/
function read_file($filename,$method="rb"){
	if($handle=@fopen($filename,$method)){
		@flock($handle,LOCK_SH);
		$filedata=@fread($handle,@filesize($filename));
		@fclose($handle);
	}
	return $filedata;
}

function writetofile($filename,$book)
{
$fd=fopen("$filename","a+");
fwrite($fd,$book);
fclose($fd);
return true;
}

function getfromlist($file)
{
$fp=fopen("$file","a+");
$list=fgets($fp,5);
fclose($fp);
return $list;
}

function updatetofile($filename,$book)
{
$fd=fopen("$filename","w");
fwrite($fd,$book);
fclose($fd);
return true;
}


/**************************************************************************/

// 函数名: notfate_mkdir

// 功能: 创建新目录,这是来自php.net的一段代码.弥补mkdir的不足.

// 参数: $dir -- 目录名

/**************************************************************************/

function notfate_mkdir($dir,$mode=0777){

    $u=umask(0);

    $r=mkdir($dir,$mode);

    umask($u);

    return $r;

}

/**************************************************************************/

// 函数名: notfate_any_mkdir

// 功能: 创建新目录,与上面的notfate_mkdir有点不同，因为它多了一个any,即可以创建多级目录

//         如:notfate_any_mkdir("abc/abc/abc/abc/abc")

// 参数: $dirs -- 目录名

/**************************************************************************/
/*
function notfate_any_mkdir($dirs,$mode=0777){

      $forder=explode('/',$dirs);

      $f='';

      for($n=0;$n<count($forder);$n++){

          if($forder[$n]=='') continue;

          $f.=((($n==0)&&($forder[$n]<>''))?(''):('/')).$forder[$n];

          if(!file_exists($f)){

              if(notfate_mkdir($f,$mode)) continue;
              else
                  return false;

          }

        }

        return true;

}
*/
function notfate_any_mkdir($dirs,$mode=0777)
{
  if(!strrpos($dirs,'/'))
    {
      return(notfate_mkdir($dirs,$mode));
  }else
      {
      $forder=explode('/',$dirs);
      $f='';
      for($n=0;$n<count($forder);$n++)
          {
          if($forder[$n]=='') continue;
          $f.=((($n==0)&&($forder[$n]<>''))?(''):('/')).$forder[$n];
          if(file_exists($f)){
              chmod($f,0777);
              continue;
              }
          else
              {
              if(notfate_mkdir($f,$mode)) continue;
              else
                  return false;
          }
        }
        return true;
      }
}

/**************************************************************************/

// 函数名: delforder

// 功能: 删除目录,不管该目录下是否有文件或子目录，全部删除哦，小心别删错了哦!

// 参数: $file -- 源文件/目录

/**************************************************************************/

function delforder($file) {

     chmod($file,0777);

     if (is_dir($file)) {

          $handle = opendir($file); 

          while($filename = readdir($handle)) {

           if ($filename != "." && $filename != "..")

          closedir($handle);

          return(rmdir($file));

     } 

}
}

/**************************************************************************/
// 函数名: movefile
// 功能: 移动文件
// 参数: $file -- 待移动的文件名
// $destfile -- 目标文件名
// $overwrite 如果目标文件存在，是否覆盖.默认是覆盖.
// $bak 是否保留原文件 默认是不保留即删除原文件

/**************************************************************************/
function movefile($file,$destfile,$overwrite=1,$bak=0){
    if(file_exists($destfile)){
        if($overwrite)
            unlink($destfile);
        else
            return false;
    }
    if($cf=copy($file,$destfile)){
        if(!$bak)
            return(unlink($file));
        }
    return($cf);
}

/**************************************************************************/
// 函数名: movedir
// 功能: 这是下一涵数move的附助函数，功能就是移动目录
/**************************************************************************/
function movedir($dir,$destdir,$overwrite=1,$bak=1){
     @set_time_limit(600);
    if(!file_exists($destdir))
        notfate_any_mkdir($destdir);
    if(file_exists($dir)&&(is_dir($dir)))
        {
        if(substr($dir,-1)!='/')$dir.='/';
        if(file_exists($destdir)&&(is_dir($destdir))){
        if(substr($destdir,-1)!='/')$destdir.='/';
            $h=opendir($dir);
            while($file=readdir($h)){
                if($file=='.'||$file=='..')
                    {
                    continue;
                    $file="";
                }
                if(is_dir($dir.$file)){
                    if(!file_exists($destdir.$file))
                        notfate_mkdir($destdir.$file);
                    else
                        chmod($destdir.$file,0777);
                    movedir($dir.$file,$destdir.$file,$overwrite,$bak);
                    delforder($dir.$file);
                    }
                else
                {
                    if(file_exists($destdir.$file)){
                        if($overwrite)unlink($destdir.$file);
                        else{
                            continue;
                            $file="";
                            }
                    }
                    if(copy($dir.$file,$destdir.$file))
                        if(!$bak)
                            if(file_exists($dir.$file)&&is_file($dir.$file))
                                @unlink($dir.$file);
                }
            }
        }
        else
            return false;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: move
// 功能: 移动文件或目录
// 参数: $file -- 源文件/目录
//       $path -- 目标路径
//       $overwrite -- 如是目标路径中已存在该文件时，是否覆盖移动
//                  --  默认值是1, 即覆盖
//       $bak  -- 是否保留备份(原文件/目录)
/**************************************************************************/
function move($file,$path,$overwrite=1,$bak=1)
     {
    if(file_exists($file)){
        if(is_dir($file)){
            if(substr($file,-1)=='/')$dirname=basename(substr($file,0,strlen($file)-1));
            else $dirname=basename($file);
            if(substr($path,-1)!='/')$path.='/';
            if($file!='.'||$file!='..'||$file!='../'||$file!='./')$path.=$dirname;
            movedir($file,$path,$overwrite,$bak);
            if(!$bak)delforder($file);
            }
        else{
            if(file_exists($path)){
                if(is_dir($path))chmod($path,0777);
                else {
                    if($overwrite)
                        @unlink($path);
                    else
                        return false;
                }
            }
            else
                notfate_any_mkdir($path);
            if(substr($path,-1)!='/')$path.='/';
            movefile($file,$path.basename($file),$overwrite,$bak);
        }
    }
    else
        return false;
}



/***********************************************************************************/
/*/                                                                               /*/
/*/                        Program: File System Class(FSC)                        /*/
/*/                        PHP Programer :吴双(James Wu)                          /*/
/*/                        Email: wu-shuang@163.net                               /*/
/*/                        HomePage: http://www.dev-php.com                       /*/
/*/                        Date: 2002-01-24                                       /*/
/*/                                                                               /*/
/***********************************************************************************/

class FSC{

/**************************************************************************/
// 函数名: getfilesource
// 功能: 得到指定文件的内容
// 参数: $file 目标文件
/**************************************************************************/
function getfilesource($file){
    if($fp=fopen($file,'r')){
        $filesource=fread($fp,filesize($file));
        fclose($fp);
        return $filesource;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: writefile
// 功能: 创建新文件，并写入内容，如果指定文件名已存在，那将直接覆盖
// 参数: $file -- 新文件名
// $source  文件内容
/**************************************************************************/
function writefile($file,$source){
    if($fp=fopen($file,'w')){
        $filesource=fwrite($fp,$source);
        fclose($fp);
        return $filesource;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: movefile
// 功能: 移动文件
// 参数: $file -- 待移动的文件名
// $destfile -- 目标文件名
// $overwrite 如果目标文件存在，是否覆盖.默认是覆盖.
// $bak 是否保留原文件 默认是不保留即删除原文件

/**************************************************************************/
function movefile($file,$destfile,$overwrite=1,$bak=0){
    if(file_exists($destfile)){
        if($overwrite)
            unlink($destfile);
        else
            return false;
    }
    if($cf=copy($file,$destfile)){
        if(!$bak)
            return(unlink($file));
        }
    return($cf);
}
  /**************************************************************************/
// 函数名: movedir
// 功能: 这是下一涵数move的附助函数，功能就是移动目录
/**************************************************************************/
function movedir($dir,$destdir,$overwrite=1,$bak=0){
     @set_time_limit(600);
    if(!file_exists($destdir))
        FSC::notfate_any_mkdir($destdir);
    if(file_exists($dir)&&(is_dir($dir)))
        {
        if(substr($dir,-1)!='/')$dir.='/';
        if(file_exists($destdir)&&(is_dir($destdir))){
        if(substr($destdir,-1)!='/')$destdir.='/';
            $h=opendir($dir);
            while($file=readdir($h)){
                if($file=='.'||$file=='..')
                    {
                    continue;
                    $file="";
                }
                if(is_dir($dir.$file)){
                    if(!file_exists($destdir.$file))
                        FSC::notfate_mkdir($destdir.$file);
                    else
                        chmod($destdir.$file,0777);
                    FSC::movedir($dir.$file,$destdir.$file,$overwrite,$bak);
                    FSC::delforder($dir.$file);
                    }
                else
                {
                    if(file_exists($destdir.$file)){
                        if($overwrite)unlink($destdir.$file);
                        else{
                            continue;
                            $file="";
                            }
                    }
                    if(copy($dir.$file,$destdir.$file))
                        if(!$bak)
                            if(file_exists($dir.$file)&&is_file($dir.$file))
                                @unlink($dir.$file);
                }
            }
        }
        else
            return false;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: move
// 功能: 移动文件或目录
// 参数: $file -- 源文件/目录
//       $path -- 目标路径
//       $overwrite -- 如是目标路径中已存在该文件时，是否覆盖移动
//                  --  默认值是1, 即覆盖
//       $bak  -- 是否保留备份(原文件/目录)
/**************************************************************************/
function move($file,$path,$overwrite=1,$bak=0)
     {
    if(file_exists($file)){
        if(is_dir($file)){
            if(substr($file,-1)=='/')$dirname=basename(substr($file,0,strlen($file)-1));
            else $dirname=basename($file);
            if(substr($path,-1)!='/')$path.='/';
            if($file!='.'||$file!='..'||$file!='../'||$file!='./')$path.=$dirname;
            FSC::movedir($file,$path,$overwrite,$bak);
            if(!$bak)FSC::delforder($file);
            }
        else{
            if(file_exists($path)){
                if(is_dir($path))chmod($path,0777);
                else {
                    if($overwrite)
                        @unlink($path);
                    else
                        return false;
                }
            }
            else
                FSC::notfate_any_mkdir($path);
            if(substr($path,-1)!='/')$path.='/';
            FSC::movefile($file,$path.basename($file),$overwrite,$bak);
        }
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: delforder
// 功能: 删除目录,不管该目录下是否有文件或子目录，全部删除哦，小心别删错了哦!
// 参数: $file -- 源文件/目录

/**************************************************************************/
function delforder($file) {
     chmod($file,0777);
     if (is_dir($file)) {
          $handle = opendir($file);
          while($filename = readdir($handle)) {
           if ($filename != "." && $filename != "..")
            {
                FSC::delforder($file."/".$filename);
            }
          }
          closedir($handle);
          return(rmdir($file));
     }
     else {
        unlink($file);
      }
}
/**************************************************************************/
// 函数名: notfate_mkdir
// 功能: 创建新目录,这是来自php.net的一段代码.弥补mkdir的不足.
// 参数: $dir -- 目录名

/**************************************************************************/
function notfate_mkdir($dir,$mode=0777){
    $u=umask(0);
    $r=mkdir($dir,$mode);
    umask($u);
    return $r;
}
/**************************************************************************/
// 函数名: notfate_any_mkdir
// 功能: 创建新目录,与上面的notfate_mkdir有点不同，因为它多了一个any,即可以创建多级目录
//         如:notfate_any_mkdir("abc/abc/abc/abc/abc")
// 参数: $dirs -- 目录名

/**************************************************************************/
function notfate_any_mkdir($dirs,$mode=0777)
{
  if(!strrpos($dirs,'/'))
    {
      return(FSC::notfate_mkdir($dirs,$mode));
  }else
      {
      $forder=explode('/',$dirs);
      $f='';
      for($n=0;$n<count($forder);$n++)
          {
          if($forder[$n]=='') continue;
          $f.=((($n==0)&&($forder[$n]<>''))?(''):('/')).$forder[$n];
          if(file_exists($f)){
              chmod($f,0777);
              continue;
              }
          else
              {
              if(FSC::notfate_mkdir($f,$mode)) continue;
              else
                  return false;
          }
        }
        return true;
      }
}

/*********************************************************************************/
/*/                            End Class FSC                                   /*/
/*********************************************************************************/
}
// ------------------------------  文件操作函数   ------------------------------  结束
?>