PHP操作文件类实例代码_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:PHP上传自动生成缩略图及水印类(含代码)
思路很大一部分是原创的,但也有一些是COPY网络的,写得不够规范,还请各位大大不要见笑,同时给小弟些意见。 开始第一步: 创建文件夹,布局: annex:附件(该目录下存放上传的原图片) |— smallimg:存放缩略图片 |— mark:存放水印图片 include:存放

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

第一次写类,写的不好,大家多提意见,不过不要骂我
刚才又加了两个功能,又加了注释,高手一定帮我看看哪有问题啊,谢谢
file.class.php
  1. <?php 
  2. /** 
  3. *本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录 
  4. * 列出目录里的文件等功能,路径后面别忘了加"/" 
  5.  
  6. * @author 路人郝 
  7. * @copyright myself 
  8. * @link [url=http://www.phpr.cn]www.phpr.cn[/url] 
  9.  
  10. */ 
  11. class fileoperate 
  12. var path;// 文件路径 
  13. var name;//文件名 
  14. var result;//对文件操作后的结果 
  15.  
  16. /** 
  17. * 本方法用来在path目录下创建name文件 
  18. * 
  19. * @param string path 
  20. * @param string name 
  21. */  
  22. function creat_file(path,name)//建立文件 
  23. {  
  24. filename=path.name; 
  25. if (file_exists(filename)) 
  26. echo "文件已经存在,请换个文件名"
  27. else  
  28. if (file_exists(path)) 
  29. touch(name); 
  30. rename(name,filename); 
  31. echo "文件建立成功 </br>"
  32. else
  33. echo "目录不存在,请检查"
  34.  
  35. /** 
  36. * 本方法用来写文件,向path路径下name文件写入content内容,bool为写入选项,值为1时 
  37. * 接着文件原内容下继续写入,值为2时写入后的文件只有本次content内容 
  38. * 
  39. * @param string_type path 
  40. * @param string_type name 
  41. * @param string_type content 
  42. * @param bool_type bool 
  43. */ 
  44. function write_file(path,name,content,bool) //写文件 
  45. filename=path.name; 
  46. if (bool==1) { 
  47. if (is_writable(filename)) { 
  48. handle=fopen(filename,'a'); 
  49. if (!handle) { 
  50. echo "文件不能打开或文件不存在"
  51. exit
  52. result=fwrite(handle,content); 
  53. if (!result) { 
  54. echo "文件写入失败"
  55. echo "文件写入成功"
  56. fclose(handle); 
  57. else echo "文件不存在"
  58. if (bool==2) { 
  59. if (!file_exists(filename)) { 
  60. this->creat_file(path,name); 
  61. handle=fopen(filename,'a'); 
  62. if (fwrite(handle,content)); 
  63. echo "文件写入成功"
  64.  
  65. else { 
  66. unlink(filename); 
  67. this->creat_file(path,name); 
  68. this->write_file(path,name,content,1); 
  69. echo "文件修改成功"
  70.  
  71.  
  72. /** 
  73. * 本方法删除path路径下name文件 
  74. * 
  75. * @param string_type path 
  76. * @param string_type name 
  77. */ 
  78. function del_file(path,name){ //删除文件 
  79. filename=path.name; 
  80.  
  81. if (!file_exists(filename)) { 
  82. echo "文件不存在,请确认路径是否正确"
  83. else { 
  84. if (unlink(filename)){ 
  85. echo "文件删除成功"
  86. else echo "文件删除失败"
  87.  
  88.  
  89. /** 
  90. * 本方法用来修改path目录里name文件中的内容(可视) 
  91. * 
  92. * @param string_type path 
  93. * @param string_type name 
  94. */ 
  95. function modi_file(path,name){ //文件修改 
  96. filename=path.name; 
  97. handle=fopen(filename,'r+'); 
  98. content=file_get_contents(filename); 
  99. echo "<form id='form1' name='form1' action='modi_file.php' method='post'>"
  100. echo "<textarea name=content rows='10'>content</textarea>文件内容"
  101. echo "<p>"
  102. echo "<input type='text' name='filename' value=filename />文件路径<p>"
  103. echo "<input name=ss type=submit value=修改文件内容 />"
  104. echo "</form>"
  105.  
  106. /** 
  107. * 本方法用来复制name文件从spath到dpath 
  108. * 
  109. * @param string name 
  110. * @param string spath 
  111. * @param string dpath 
  112. */ 
  113. function copy_file(name,spath,dpath) //文件复制 
  114. filename=spath.name; 
  115. if (file_exists(filename)) { 
  116. handle=fopen(filename,'a'); 
  117. copy(filename,dpath.name); 
  118. if (file_exists(dpath.name)) 
  119. echo "文件复制成功"
  120. else echo "文件复制失败"
  121. else echo "文件不存在"
  122.  
  123. /** 
  124. * 本方法把name文件从spath移动到path路径 
  125. * 
  126. * @param string_type path 
  127. * @param string_type dirname 
  128. * @param string_type dpath 
  129. */ 
  130. function move_file(name,spath,dpath) //移动文件 
  131. filename=spath.name; 
  132. if (file_exists(filename)) { 
  133. result=rename(filename,dpath.name); 
  134. if (result==false or !file_exists(dpath)) 
  135. echo "文件移动失败或目的目录不存在"
  136. else  
  137. echo "文件移动成功"
  138. else { 
  139. echo "文件不存在,无法移动"
  140.  
  141. /** 
  142. * 本方法把filename文件重命名为newname文件 
  143. * 
  144. * @param string_type filename 
  145. * @param string_type newname 
  146. */ 
  147. function rename_file(filename,newname) { //文件或目录更名 
  148. path=pathinfo(filename); 
  149. dir=path['dirname']; //得到文件路径 
  150. newfilename=dir.newname; 
  151. if (file_exists(filename)) { //判断文件是否存在 
  152. result=rename(filename,newfilename); 
  153. if (result==true) 
  154. echo "文件更名成功"
  155. else  
  156. echo "文件更名失败"
  157. else  
  158. echo "文件不存在";  
  159.  
  160. /** 
  161. * 本方法用来列出目录里的文件或目录switch为1时按字母顺序列出所有目录和文件 
  162. * switch为2则只列出目录,switch为3时,只列出文件名 
  163. * 
  164. * @param string_type path 
  165. * @param int_type switch 
  166. */ 
  167. function list_filename(path,switch//列出文件和目录名 
  168. if (file_exists(path)) { 
  169. dir=scandir(path); 
  170. if (switch==1){ //如果switch为1则按字母顺序列出所有目录和文件 
  171. for (i=0;i<=count(dir);i++) 
  172. if (dir[i]!="." and dir[i]!="..")  
  173. echo "dir[i]<br>"
  174. if (switch==2) //switch为2则只列出目录 
  175. for (i=0;i<=count(dir);i++) 
  176. x=is_dir(path.dir[i]); 
  177. if (dir[i]!="." and dir[i]!=".." and x==true) 
  178. echo "dir[i]<br>"
  179. if (switch==3) //switch为3时,只列出文件名 
  180. for (i=0;i<=count(dir);i++) 
  181. x=is_dir(path.dir[i]); 
  182. if (dir[i]!="." and dir[i]!=".." and x==false) 
  183. echo "dir[i]<br>"
  184. }  
  185.  
  186. /** 
  187. * 本方法在path目录下创建名为dirname的目录 
  188. * 
  189. * @param string_type path 
  190. * @param string_type dirname 
  191. */ 
  192. function creat_dir(path,dirname){ //创建目录 
  193. if (file_exists(path)) { 
  194. result=mkdir(path.dirname); 
  195. if (result) 
  196. echo "目录建立成功"
  197. else  
  198. echo "目录建立失败"
  199. else  
  200. echo "路径不存在,请重新输入"
  201.  
  202. /** 
  203. * 本方法删除pathname目录,包括该目录下所有的文件及子目录 
  204. * 
  205. * @param string_type pathname 
  206. */ 
  207. function del_dir(pathname){ //删除目录及目录里所有的文件夹和文件 
  208. if (!is_dir(pathname)) 
  209. {exit("你输入的不是一个目录,请检查") ;} 
  210. handle=opendir(pathname); 
  211. while ((fileordir=readdir(handle)) !== false) { 
  212. if (fileordir!="." && fileordir!="..") { 
  213. is_dir("pathname/fileordir")? 
  214. this->del_dir("pathname/fileordir"): 
  215. unlink("pathname/fileordir"); 
  216. if (readdir(handle) == false) 
  217. closedir(handle); 
  218. rmdir(pathname); 
  219. ?> 
modi_file.php
  1. <?php 
  2. include('file.class.php'); 
  3. content=_POST['content'];//得到文件内容 
  4. //echo content;// 
  5. filename=_POST['filename']; 
  6. path=pathinfo(filename); //得到文件路径 
  7. dir=path['dirname']."/"//目录名  
  8. name=path['basename']; //文件名 
  9. op=new fileoperate(); 
  10. op->write_file("dir","name",content,2); 
  11. ?> 
test.php
 
  1. <?php 
  2. include('file.class.php'); 
  3. op=new fileoperate(); 
  4. //op->creat_file("./","aa3.txt"); 
  5. //op->del_file("./","aa3.txt"); 
  6. //b="fdfdsfdsfdsfdfdfdfdfdsfdsf1233456"; 
  7. //op->write_file("./","aa3.txt",b,1); 
  8. //op->modi_file("./","aa3.txt"); 
  9. //op->copy_file("aa3.txt","./","../a/"); 
  10. //op->move_file("aa3.txt","../","./"); 
  11. //op->rename_file("aa3.txt","aa2.txt"); 
  12. //op->list_filename("../",3); 
  13. //op->creat_dir("/wwwroot","wesley"); 
  14. //op->del_dir("/aaa/test");?> 

分享:PHP技术:txtSQL安装手册中文版
txtsql的最大优点之一是文档很详细,可惜,我在网上找了半天也找不到中文版的文档,所以只好自己动手,利人利已吧,不过自己的E文水平自己是很清楚的,希望大家看了不会笑掉大牙才好,还希望大家多多指教。 欢迎使用txtSQL 2.2快速安装手册。这页将指引你如何

来源:模板无忧//所属分类:PHP教程/更新时间:2012-06-12
相关PHP教程