PHP編程之PHP操作文件類_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP編程之PHP無限極分類
      php無限極分類 CODE=PHP] 至于添加刪除之類的功能我就不多寫了!仔細(xì)看看就知道這么用了. 難的是顯示方面 希望高手?jǐn)U展一下! QUOTE: 這是類 ?php /*==================================

      發(fā)一個(gè)剛寫完的文件操作類

      剛才又加了兩個(gè)功能,又加了注釋,高手一定幫我看看哪有問題啊,謝謝

      file.class.php

      以下為引用的內(nèi)容:

      <?php
      /**
      *本類為文件操作類,實(shí)現(xiàn)了文件的建立,寫入,刪除,修改,復(fù)制,移動(dòng),創(chuàng)建目錄,刪除目錄
      * 列出目錄里的文件等功能,路徑后面別忘了加"/"
      *
      * @author 路人郝
      * @copyright myself
      * @link [url=http://www.phpr.cn]www.phpr.cn[/url]
      *
      */
      class fileoperate
      {
      var path;// 文件路徑
      var name;//文件名
      var result;//對(duì)文件操作后的結(jié)果

      /**
      * 本方法用來在path目錄下創(chuàng)建name文件
      *
      * @param string path
      * @param string name
      */
      function creat_file(path,name)//建立文件
      {
      filename=path.name;
      if (file_exists(filename))
      {
      echo "文件已經(jīng)存在,請(qǐng)換個(gè)文件名";
      }
      else
      {
      if (file_exists(path))
      {
      touch(name);
      rename(name,filename);
      echo "文件建立成功 </br>";
      }
      else{
      echo "目錄不存在,請(qǐng)檢查";
      }
      }
      }

      /**
      * 本方法用來寫文件,向path路徑下name文件寫入content內(nèi)容,bool為寫入選項(xiàng),值為1時(shí)
      * 接著文件原內(nèi)容下繼續(xù)寫入,值為2時(shí)寫入后的文件只有本次content內(nèi)容
      *
      * @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 "文件不存在,請(qǐng)確認(rèn)路徑是否正確";
      }
      else {
      if (unlink(filename)){
      echo "文件刪除成功";
      }
      else echo "文件刪除失敗";
      }

      }

      /**
      * 本方法用來修改path目錄里name文件中的內(nèi)容(可視)
      *
      * @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>文件內(nèi)容";
      echo "<p>";
      echo "<input type='text' name='filename' value=filename />文件路徑<p>";
      echo "<input name=ss type=submit value=修改文件內(nèi)容 />";
      echo "</form>";
      }

      /**
      * 本方法用來復(fù)制name文件從spath到dpath
      *
      * @param string name
      * @param string spath
      * @param string dpath
      */
      function copy_file(name,spath,dpath) //文件復(fù)制
      {
      filename=spath.name;
      if (file_exists(filename)) {
      handle=fopen(filename,'a');
      copy(filename,dpath.name);
      if (file_exists(dpath.name))
      echo "文件復(fù)制成功";
      else echo "文件復(fù)制失敗";
      }
      else echo "文件不存在";
      }

      /**
      * 本方法把name文件從spath移動(dòng)到path路徑
      *
      * @param string_type path
      * @param string_type dirname
      * @param string_type dpath
      */
      function move_file(name,spath,dpath) //移動(dòng)文件
      {
      filename=spath.name;
      if (file_exists(filename)) {
      result=rename(filename,dpath.name);
      if (result==false or !file_exists(dpath))
      echo "文件移動(dòng)失敗或目的目錄不存在";
      else
      echo "文件移動(dòng)成功";
      }
      else {
      echo "文件不存在,無法移動(dòng)";
      }
      }

      /**
      * 本方法把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時(shí)按字母順序列出所有目錄和文件
      * switch為2則只列出目錄,switch為3時(shí),只列出文件名
      *
      * @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時(shí),只列出文件名
      {
      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目錄下創(chuàng)建名為dirname的目錄
      *
      * @param string_type path
      * @param string_type dirname
      */
      function creat_dir(path,dirname){ //創(chuàng)建目錄
      if (file_exists(path)) {
      result=mkdir(path.dirname);
      if (result)
      echo "目錄建立成功";
      else
      echo "目錄建立失敗";
      }
      else
      echo "路徑不存在,請(qǐng)重新輸入";
      }

      /**
      * 本方法刪除pathname目錄,包括該目錄下所有的文件及子目錄
      *
      * @param string_type pathname
      */
      function del_dir(pathname){ //刪除目錄及目錄里所有的文件夾和文件
      if (!is_dir(pathname))
      {exit("你輸入的不是一個(gè)目錄,請(qǐng)檢查") ;}
      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
      include('file.class.php');
      content=_POST['content'];//得到文件內(nèi)容
      //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
      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");?>

      分享:PHP編程之PHP驗(yàn)證碼
      確認(rèn)碼生成文件checkNum_session.php 以下為引用的內(nèi)容: ? Header(Content-type:image/png); //定義header,聲明

      來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2009-09-10
      相關(guān)PHP教程