当前位置:Gxlcms > PHP教程 > PHP目录操作

PHP目录操作

时间:2021-07-01 10:21:17 帮助过:15人阅读

  1. //basename()
  2. 返回路径中的文件名部分
  3. $path="D:/lamp/apache2/htdocs/file.php";
  4. echo basename($path)."
    ";
  5. //显示带有文件扩展名的文件名
  6. echo basename($path,'php')."
    ";
  7. //显示不带文件扩展名的文件名
  8. //dirname()
  9. 去掉文件名,返回目录名
  10. echo dirname($path)."
    ";
  11. //返回目录名
  12. //pathinfo()
  13. 返回一个关于路径属性的数组
  14. print_r(pathinfo($path))."
    ";
  15. //opendir()
  16. 打开指定的目录
  17. //readdir()
  18. 读取指定的目录
  19. //closedir()
  20. 关闭指定的目录
  21. //rewinddir()
  22. 倒回目录句柄
  23. /*
  24. *下面的代码来统计一个目录下的文件
  25. */
  26. $num=0;
  27. //用来统计子目录和文件的总个数
  28. $dirname="pm3";
  29. //定义一个目录,即需要遍历的目录
  30. $dir_handle=opendir($dirname);
  31. //打开目录
  32. //将遍历的内容和文件名使用表格格式输出
  33. echo "";
  34. echo "
  35. ";
  36. echo "
  37. ";
  38. echo "
  39. ";
  40. while($file=readdir($dir_handle)){
  41. //循环读取目录里的内容,知道最后
  42. $dirFile=$dirname."/".$file;
  43. //使用目录名和文件名链接起来,这样在下面的filetype当中才能使用
  44. if($num++%2==0){
  45. //通过单复数来实现隔行变色
  46. $bgcolor="#ffffff";
  47. }else{
  48. $bgcolor="#cccccc";
  49. }
  50. echo "
  51. ";
  52. echo "
  53. ";
  54. //输出文件名
  55. echo "
  56. ";
  57. //输出文件大小
  58. echo "
  59. ";
  60. //输出文件类型
  61. echo "
  62. ";
  63. //输出文件的修改时间
  64. echo "
  65. ";
  66. }
  67. echo "
  68. 目录".$dirname."下的内容

    文件名文件大小文件类型修改时间
    ".$file."".filesize($dirFile)."".filetype($dirFile)."".filemtime($dirFile)."
    ";
  69. closedir($dir_handle);
  70. echo "在目录".$dirname."下共有".$num."个文件
    ";
  71. //disk_free_space()
  72. disk_total_space() 统计磁盘大小
  73. /*
  74. *自定义一个递归函数,统计传入目录文件的大小
  75. */
  76. function dirSize($directory){
  77. $dir_size=0;
  78. //定义一个整形的变量,用来累加每个文件的大小从而计算目录的大小
  79. if($dir_handle=opendir($directory)){
  80. //打开目录
  81. while($fileName=readdir($dir_handle)){
  82. //循环读取目录中的文件
  83. if($fileName!="." && $fileName!=".."){
  84. //一定要排除掉两个特殊的目录
  85. $subFile=$directory."/".$fileName;
  86. //将文件名和目录名连接
  87. if(is_dir($subFile)){
  88. //判断子文件是否是目录
  89. $dir_size+=dirSize($subFile);
  90. //如果是目录,继续向下循环
  91. }
  92. if(is_file($subFile)){
  93. //判断是否是普通文件
  94. $dir_size+=filesize($subFile);
  95. //获取文件的大小,并和前面的文件大小累加
  96. }
  97. }
  98. }
  99. }
  100. closedir($dir_handle);
  101. //关闭目录的句柄
  102. return $dir_size;
  103. }
  104. $dir_size=dirSize("pm3");
  105. echo "目录pm3的大小是:".round($dir_size/pow(1024,2),2)."MB";
  106. //输出目录的大小
  107. /*
  108. *自定义一个删除目录的递归函数
  109. */
  110. //unlink()
  111. 将目录中的文件删除掉
  112. function delDir($directory){
  113. if(file_exists($directory)){
  114. //判断目录是否存在
  115. if($dir_handle=opendir($directory)){
  116. //打开目录
  117. while($fileName=readdir($dir_handle)){
  118. //循环读取目录下的文件
  119. if($fileName!="." && $fileName!=".."){
  120. //一定要排除两个特殊文件,否则你会后悔的
  121. $subFile=$directory."/".$fileName;
  122. //把文件名和目录名连接起来
  123. if(is_dir($subFile)){
  124. //如果是目录,继续执行本身
  125. delDir($subFile);
  126. }
  127. if(is_file($subFile)){
  128. //如果是普通文件,直接删除
  129. unlink($subFile);
  130. }
  131. }
  132. }
  133. closedir($dir_handle);
  134. //关闭句柄
  135. rmdir($directory);
  136. //运行到这的已经是空目录了,直接删除
  137. }
  138. }
  139. }
  140. //delDir("pm4");
  141. /*
  142. *自定义一个复制或移动目录的递归函数
  143. */
  144. //copy()
  145. 复制一个普通的文件
  146. //mkdir()
  147. 创建一个目录
  148. function copyDir($directory,$dirTo){
  149. //两个参数,一个是源目录,一个是目标目录
  150. if(is_file($dirTo)){
  151. //判断如果目标是一个普通文件,则直接退出方法
  152. echo "目标不是一个目录,无法完成复制";
  153. return;
  154. }
  155. if(!file_exists($dirTo)){
  156. //判断如果目录不存在,则创建该目录
  157. mkdir($dirTo);
  158. }
  159. if($dir_handle=opendir($directory)){
  160. while($fileName=readdir($dir_handle)){
  161. if($fileName!="." && $fileName!=".."){
  162. $subFile=$directory."/".$fileName;
  163. $subToFile=$dirTo."/".$fileName;
  164. if(is_dir($subFile)){
  165. copyDir($subFile,$subToFile);
  166. }
  167. if(is_file($subFile)){
  168. copy($subFile,$subToFile);
  169. }
  170. }
  171. }
  172. closedir($dir_handle);
  173. }
  174. }
  175. copyDir("pm3","pm4");
  176. ?>

PHP

人气教程排行