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

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

PHP代码如下:

<?php
/**
*本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录
* 列出目录里的文件等功能,路径后面别忘了加"/"

* @author 路人郝
* @copyright myself
* @link [url=http://www.phpr.cn]www.phpr.cn[/url]
*  
*/
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
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
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");
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值