您的位置:首页 > 其它

发一个刚写完的文件操作类

2007-08-11 15:08 369 查看
第一次写类,写的不好,大家多提意见,不过不要骂我
刚才又加了两个功能,又加了注释,高手一定帮我看看哪有问题啊,谢谢
file.class.php

[复制PHP代码] [ - ]
PHP代码如下:
<?php
 /**
 *本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录
 * 列出目录里的文件等功能,路径后面别忘了加"/"
 * 
 * @author 路人郝
 * @copyright myself
 * @link www.phpr.cn
 *  
 */
 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 "文件不存在,无法移动";
   }
 }
 
 /**
   * 本方法把filename文件重命名为newname文件
   *
   * @param string_type $filename
   * @param string_type $newname
   */
 function rename_file($filename,$newname) {  //文件或目录更名
   $path=pathinfo($filename);
   $dir=$path['dirname']; //得到文件路径
   $newfilename=$dir.$newname;
   if (file_exists($filename)) { //判断文件是否存在
      $result=rename($filename,$newfilename);
      if ($result==true)
      echo "文件更名成功";
      else 
      echo "文件更名失败";
     }
   else 
   echo "文件不存在";  
 }
 
 /**
   * 本方法用来列出目录里的文件或目录switch为1时按字母顺序列出所有目录和文件
   * switch为2则只列出目录,switch为3时,只列出文件名
   *
   * @param string_type $path
   * @param int_type $switch
   */
 function list_filename($path,$switch) //列出文件和目录名
 {
   if (file_exists($path)) {
    $dir=scandir($path);
    if ($switch==1){ //如果switch为1则按字母顺序列出所有目录和文件
     for ($i=0;$i<=count($dir);$i++)
     {
      if ($dir[$i]!="." and $dir[$i]!="..") 
      {
       echo "$dir[$i]<br>";
      }
     }
    }
    if ($switch==2)  //switch为2则只列出目录
    {
     for ($i=0;$i<=count($dir);$i++)
     {
      $x=is_dir($path.$dir[$i]);
      if ($dir[$i]!="." and $dir[$i]!=".." and $x==true)
      {
       echo "$dir[$i]<br>";
      }
     }
    }
    if ($switch==3) //switch为3时,只列出文件名
    {
     for ($i=0;$i<=count($dir);$i++)
     {
      $x=is_dir($path.$dir[$i]);
      if ($dir[$i]!="." and $dir[$i]!=".." and $x==false)
      {
       echo "$dir[$i]<br>";
      }
     }
    } 
   }
 }
 
 /**
   * 本方法在path目录下创建名为dirname的目录
   *
   * @param string_type $path
   * @param string_type $dirname
   */
 function creat_dir($path,$dirname){  //创建目录
   if (file_exists($path)) {
    $result=mkdir($path.$dirname);
    if ($result)
    echo "目录建立成功";
    else 
    echo "目录建立失败";
   }
   else 
   echo "路径不存在,请重新输入";
 }
 
 /**
   * 本方法删除pathname目录,包括该目录下所有的文件及子目录
   *
   * @param string_type $pathname
   */
 function del_dir($pathname){ //删除目录及目录里所有的文件夹和文件
   if (!is_dir($pathname))
   {exit("你输入的不是一个目录,请检查") ;}
   $handle=opendir($pathname);
   while (($fileordir=readdir($handle)) !== false) {
    if ($fileordir!="." && $fileordir!="..") {
      is_dir("$pathname/$fileordir")?
               $this->del_dir("$pathname/$fileordir"):
               unlink("$pathname/$fileordir");
    }
   }
   if (readdir($handle) == false)
      {
          closedir($handle);
          rmdir($pathname);
      }
 }
 }
 ?>


modi_file.php

[复制PHP代码] [ - ]
PHP代码如下:
<?php
 include('file.class.php');
 $content=$_POST['content'];//得到文件内容
 //echo $content;//
 $filename=$_POST['filename'];
 $path=pathinfo($filename); //得到文件路径
 $dir=$path['dirname']."/"; //目录名 
 $name=$path['basename']; //文件名
 $op=new fileoperate();
 $op->write_file("$dir","$name",$content,2);
 ?>


test.php

[复制PHP代码] [ - ]
PHP代码如下:
<?php
 include('file.class.php');
 $op=new fileoperate();
 //$op->creat_file("./","aa3.txt");
 //$op->del_file("./","aa3.txt");
 //$b="fdfdsfdsfdsfdfdfdfdfdsfdsf1233456";
 //$op->write_file("./","aa3.txt",$b,1);
 //$op->modi_file("./","aa3.txt");
 //$op->copy_file("aa3.txt","./","../a/");
 //$op->move_file("aa3.txt","../","./");
 //$op->rename_file("aa3.txt","aa2.txt");
 //$op->list_filename("../",3);
 //$op->creat_dir("/wwwroot","wesley");
 //$op->del_dir("/aaa/test");?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐