好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php文件操作类,建立,写入,删除,修改,复制,移动,创

php文件操作类,建立,写入,删除,修改,复制,移动,创建目录

php文件操作类,本文件操作类可实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录.大家可参考参考.

实例1,代码如下:

<?php      /*     文件名:ClassFile.php     功能:面向对象,文件操作类(查看文件,删除文件,上传文件)     作者:感染源     时间:2007-1-11    */       class  ClassFile   {     private   $dir_name ;     private   $file_name ;     private   $dh ;     //private $file_path;              //构造函数,打开工作文件目录      function  __construct( $PDirName )    {      $this ->dir_name =  $PDirName ;      if ( is_dir ( $this ->dir_name))             //打开目录        if ( $this ->dh = opendir( $this ->dir_name)  or  dir( '路径错误,请重新检查路径!' ));    } //function __construct();              //关闭文件目录      function  __destruct()    {      //关闭目录       closedir ( $this ->dh);    } //function __destruct();              //向当前文件夹添加文件,同时检查是否有重名的文件      function  AddFile( $temp_file )    {      //读取目录       while ( $this ->file_name = readdir( $this ->dh))     {       if ( $this ->file_name== $temp_file )   //检查是否和已存在的文件重名       {        echo   '文件重名,请更改文件名...' ;        exit ;      }       else       {        //将临时文件复制到当前目录中         $up_id  =  copy ( $temp_file , "$this->dir_name/$temp_file" );        if (! $up_id )       {         echo   '文件上传失败,请重新再传...' ;         exit ;       }        else        {        unlink( $temp_file );   //删除临时文件                  echo   "<script language='javascript'>" ;         echo   "alert(" 文件上传成功! ");" ;         echo   "</script>" ;       } //if       } //if      } //while     } //function AddFile();              //删除文件      function  DelFile( $del_file )    {      if ( is_file ( $del_file ))     {       //$path = "$this->dir_name/$del_file";        if (unlink( $del_file ))      {        echo   "<script language='javascript'>" ;        echo   "alert('成功删除文件!');" ;        echo   "</script>" ;      }            } //if     } //function DelFile();              //读取文件      function  Read_File()    {       $result_file  =  array ();       $i  = 0;      while ( $this ->file_name = readdir( $this ->dh))     {       if ( $this ->file_name== '.' || $this ->file_name== '..' )      {}       else       {        $result_file [ $i ++] =  "$this->dir_name/$this->file_name" ;      } //if            } //while       return   $result_file ;  //返回文件名数组     } //function Read_File()    } //Class ClassFile   ?> 

实例2,代码如下:

<?php  /**   *本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录   * 列出目录里的文件等功能,路径后面别忘了加"/"   *    * @author 路人郝   * @copyright myself   *    */   class  fileoperate  {  var  path; // 文件路径   var  name; //文件名   var  result; //对文件操作后的结果     /**   * 本方法用来在path目录下创建name文件   *   * @param string path   * @param string name   */    function  creat_file(path,name) //建立文件   {   filename=path.name;  if  ( file_exists (filename))  {  echo   "文件已经存在,请换个文件名" ;  }  else    {  if  ( file_exists (path))  {  touch(name);  rename(name,filename);  echo   "文件建立成功 </br>" ;  }  else {  echo   "目录不存在,请检查" ;  }  }  }    /**   * 本方法用来写文件,向path路径下name文件写入content内容,bool为写入选项,值为1时   * 接着文件原内容下继续写入,值为2时写入后的文件只有本次content内容   *   * @param string_type path   * @param string_type name   * @param string_type content   * @param bool_type bool   */   function  write_file(path,name,content,bool)  //写文件   {  filename=path.name;  if  (bool==1) {  if  ( is_writable (filename)) {  handle= fopen (filename, 'a' );  if  (!handle) {  echo   "文件不能打开或文件不存在" ;  exit ;  }  result=fwrite(handle,content);  if  (!result) {  echo   "文件写入失败" ;  }  echo   "文件写入成功" ;  fclose(handle);  }  else   echo   "文件不存在" ;  }  if  (bool==2) {  if  (! file_exists (filename)) {  this->creat_file(path,name);  handle= fopen (filename, 'a' );  if  (fwrite(handle,content));  echo   "文件写入成功" ;    }  else  {  unlink(filename);  this->creat_file(path,name);  this->write_file(path,name,content,1);  echo   "文件修改成功" ;  }  }    }    /**   * 本方法删除path路径下name文件   *   * @param string_type path   * @param string_type name   */   function  del_file(path,name){  //删除文件   filename=path.name;    if  (! file_exists (filename)) {  echo   "文件不存在,请确认路径是否正确" ;  }  else  {  if  (unlink(filename)){  echo   "文件删除成功" ;  }  else   echo   "文件删除失败" ;  }    }    /**   * 本方法用来修改path目录里name文件中的内容(可视)   *   * @param string_type path   * @param string_type name   */   function  modi_file(path,name){  //文件修改   filename=path.name;  handle= fopen (filename, 'r+' );  content= file_get_contents (filename);  echo   "<form id='form1' name='form1' action='modi_file.php' method='post'>" ;  echo   "<textarea name=content rows='10'>content</textarea>文件内容" ;  echo   "<p>" ;  echo   "<input type='text' name='filename' value=filename />文件路径<p>" ;  echo   "<input name=ss type=submit value=修改文件内容 />" ;  echo   "</form>" ;  }    /**   * 本方法用来复制name文件从spath到dpath   *   * @param string name   * @param string spath   * @param string dpath   */   function  copy_file(name,spath,dpath)  //文件复制   {  filename=spath.name;  if  ( file_exists (filename)) {  handle= fopen (filename, 'a' );  copy (filename,dpath.name);  if  ( file_exists (dpath.name))  echo   "文件复制成功" ;  else   echo   "文件复制失败" ;  }  else   echo   "文件不存在" ;  }    /**   * 本方法把name文件从spath移动到path路径   *   * @param string_type path   * @param string_type dirname   * @param string_type dpath   */   function  move_file(name,spath,dpath)  //移动文件   {  filename=spath.name;  if  ( file_exists (filename)) {  result=rename(filename,dpath.name);  if  (result==false  or  ! file_exists (dpath))  echo   "文件移动失败或目的目录不存在" ;  else    echo   "文件移动成功" ;  }  else  {  echo   "文件不存在,无法移动" ;  }  }  }  ?> 

实例3,代码如下:

这个比较高级了,不但可以实现文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录,还可以实现移动目录,copy,替换等操作,代码如下:

<?php  class  FSC{  // 函数名: getfilesource   // 功能: 得到指定文件的内容   // 参数: $file 目标文件   // test passed   function  getfilesource( $file ){       if ( $fp = fopen ( $file , 'r' )){           $filesource = fread ( $fp , filesize ( $file ));          fclose( $fp );           return   $filesource ;      }       else            return  false;  }    // 函数名: writefile   // 功能: 创建新文件,并写入内容,如果指定文件名已存在,那将直接覆盖   // 参数: $file -- 新文件名   // $source  文件内容   //test passed   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 是否保留原文件 默认是不保留即删除原文件   // test passed   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 -- 源文件/目录   //test passed     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;        }  }    }  ?> 

查看更多关于php文件操作类,建立,写入,删除,修改,复制,移动,创的详细内容...

  阅读:41次