0

0

PHP常用技术文之文件操作和目录操作总结_PHP教程

php中文网

php中文网

发布时间:2016-07-13 10:17:52

|

874人浏览过

|

来源于php中文网

原创

PHP常用技术文之文件操作和目录操作总结

 一、基本文件的操作

文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等

1

2

立即学习PHP免费学习笔记(深入)”;

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

   header("content-type","text/html;charset=utf-8");

 /*

 *声明一个函数,传入文件名获取文件属性

 *@param string $fileName 文件名称

 */

 function getFilePro($fileName)

 {

   if(!file_exists($fileName))

   {

     echo '文件不存在
';

     return;

   }

   /*是否是普通文件*/

   if(is_file($fileName))

   {

     echo $fileName.'是一个文件
';

   }

   /*是否是目录*/

   if(is_dir($fileName))

   {

     echo $fileName.'是一个目录';

   }

   /*输出文件的型态*/

   echo '文件型态是:'.getFileType($fileName).'
';

   /*文件大小,转换单位*/

   echo '文件大小是:'.getFileSize(filesize($fileName)).'
';

   /*文件是否可读*/

   if(is_readable($fileName))

   {

     echo '文件可读
';

   }

   /*文件是否可写*/

   if(is_writable($fileName))

   {

     echo '文件可写
';

   }

   /*文件是否可执行*/

   if(is_executable($fileName))

   {

     echo '文件可执行
';

   }

  

   echo '文件创立时间:'.date('Y年m月j日',filectime($fileName)).'
';

   echo '文件最后修改时间:'.date('Y年m月j日',filemtime($fileName)).'
';

   echo '文件最后打开时间:'.date('Y年m月j日',fileatime($fileName)).'
';

 }

  

 /*

 *声明一个函数,返回文件类型

 *@param string $fileName 文件名称

 */

 function getFileType($fileName)

 {

   $type = '';

   switch(filetype($fileName))

   {

     case 'file':$type .= '普通文件';break;

     case 'dir':$type .= '目录文件';break;

     case 'block':$type .= '块设备文件';break;

     case 'char':$type .= '字符设备文件';break;

     case 'filo':$type .= '管道文件';break;

     case 'link':$type .= '符号链接';break;

     case 'unknown':$type .= '未知文件';break;

     default:

   }

   return $type;

 }

  

 /*

 *声明一个函数,返回文件大小

 *@param int $bytes 文件字节数

 */

 function getFileSize($bytes)

 {

   if($bytes >= pow(2,40))

   {

     $return = round($bytes / pow(1024,4),2);

     $suffix = 'TB';

   }

   else if($bytes >= pow(2,30))

   {

     $return = round($bytes / pow(1024,3),2);

     $suffix = 'GB';

   }

   else if($bytes >= pow(2,20))

   {

     $return = round($bytes / pow(1024,2),2);

     $suffix = 'MB';

   }

   else if($bytes >= pow(2,10))

   {

     $return = round($bytes / pow(1024,1),2);

     $suffix = 'KB';

   }

   else

   {

     $return = $bytes;

     $suffix = 'B';

   }

  return $return." ".$suffix;

}

  

 /*调用函数,传入test目录下的test.txt文件*/

 getFilePro('./test/div.html');

?>

结果:

PHP常用技术文之文件操作和目录操作总结 帮客之家

二、目录的操作

目录的操作有:遍历目录、删除、复制、大小统计等

1、遍历目录

1

2

立即学习PHP免费学习笔记(深入)”;

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

/*

*遍历目录

*@param string $dirName 目录名

*/

function findDir($dirName)

10分钟内自己学会PHP
10分钟内自己学会PHP

10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A

下载

{

  $num = 0; /*统计子文件个数*/

  $dir_handle = opendir($dirName); /*打开目录*/

  /*输出目录文件*/

  echo '

';

  echo '

';

  echo '

  echo '

';

 

  while($file = readdir($dir_handle))

  {

    $dirFile = $dirName.'/'.$file;

    $bgcolor = $num++%2==0?'#ffffff':'#cccccc';

    echo '

';

    echo '

';

    echo '

';

    echo '

';

    echo '

';

    echo '

';

  }

  echo "

目录'.$dirName.'下的文件

文件名 文件大小 文件类型 修改时间
'.$file.' '.filesize($dirFile).' '.filetype($dirFile).' '.date('Y/n/t',filemtime($dirFile)).'
";

  closedir($dir_handle); /*关闭目录*/

  echo "在".$dirName."目录下共有".$num.'个子文件';

}

/*传递当前目录下的test目录*/

findDir('./test');

结果

2、统计目录大小

1

2

立即学习PHP免费学习笔记(深入)”;

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

/*

 *统计目录大小

 *@param string $dirName 目录名

 *@return double

 */

  

function dirSize($dirName)

{

   $dir_size = 0;

   if($dir_handle = @opendir($dirName))

   {

     while ($fileName = readdir($dir_handle))

     {

       /*排除两个特殊目录*/

       if($fileName != '.' && $fileName != '..')

       {

         $subFile = $dirName.'/'.$fileName;

         if(is_file($subFile))

         {

           $dir_size += filesize($subFile);

         }

         if(is_dir($subFile))

         {

           $dir_size += dirSize($subFile);

         }

       }

     }

     closedir($dir_handle);

     return $dir_size;

   }

 }

 /*传递当前目录下的test目录*/

 $dir_size = dirSize('./test');

 echo './test目录文件大小是:'.round($dir_size / pow(1024,1),2).'KB';

结果:

3、删除目录

1

2

立即学习PHP免费学习笔记(深入)”;

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

/*

*删除目录

*@param string $dirName 目录名

 */

 function delDir($dirName)

 {

   /*php中的mkdir函数就可以创建目录*/

   if(file_exists($dirName))

   {

     if($dir_handle = @opendir($dirName))

     {

       while ($fileName = readdir($dir_handle))

       {

         /*排除两个特殊目录*/

         if($fileName != '.' && $fileName != '..')

         {

           $subFile = $dirName.'/'.$fileName;

           if(is_file($subFile))

           {

             unlink($subFile);

           }

           if(is_dir($subFile))

           {

             delDir($subFile);

           }

         }

       }

       closedir($dir_handle);

       rmdir($dirName);

       return $dirName.'目录已经删除';

     }

   }

 }

 /*传递test目录的副本test1*/

 echo delDir('./test1');

删除成功的提示信息

4、复制目录

1

2

立即学习PHP免费学习笔记(深入)”;

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

/*

*复制目录

*@param string $dirSrc 原目录名

*@param string $dirTo 目标目录名

*/

function copyDir($dirSrc,$dirTo)

{

  if(is_file($dirTo))

  {

    echo '目标目录不能创建';/*目标不是一个*/

    return;

  }

  if(!file_exists($dirTo))

  {

    /*目录不存在则创建*/

    mkdir($dirTo);

  }

  if($dir_handle = @opendir($dirSrc))

  {

    while ($fileName = readdir($dir_handle))

    {

      /*排除两个特殊目录*/

      if($fileName != '.' && $fileName != '..')

      {

        $subSrcFile = $dirSrc.'/'.$fileName;

        $subToFile = $dirTo.'/'.$fileName;

        if(is_file($subSrcFile))

        {

          copy($subSrcFile,$subToFile);

        }

        if(is_dir($subSrcFile))

        {

          copyDir($subSrcFile,$subToFile);

        }

      }

    }

    closedir($dir_handle);

    return $dirSrc.'目录已经复制到'.$dirTo.'目录';

  }

}

echo copyDir('./test','../testcopy');

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/886550.htmlTechArticlePHP常用技术文之文件操作和目录操作总结 一、基本文件的操作 文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1044

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

334

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

213

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

35

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

111

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

77

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

813

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

97

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号