动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   PHP → 阅读文章

 前一阵时间写的一个PHP类了,不知道有没有用哦!(加说明)

作者来源: 
阅读 1085 人次 , 2006-4-18 17:12:00 


   <?
/***********************************************************************************/
/*/                                                                               /*/
/*/                        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                                   /*/
/*********************************************************************************/
}
?>   
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:删除目录及其下的文件还有问题吗?送大家一个写好的函数
· 下一篇:[原创]WIN98/ME安装APACHE+MYSQL+PHP安装最终技巧...
· Alpha.Z写的数字转换为中文的类的补充 (我昨晚也是无聊)
· xzn_html_tree(1.0) 可折叠大纲测试例
· Win2000+Apache+MySql+PHP4+PERL安装使用小结
· 四 文章类 封装对文章的各种操作(插入数据库、从数据库取出等等)
· Apache2.0a1新特性(英文,我的英文太差,只能读懂。)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077