欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-10 21:37:15
...

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

一、基本文件的操作

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

1

2

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常用技术文之文件操作和目录操作总结_PHP教程

二、目录的操作

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

1、遍历目录

1

2

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)

{

$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');

结果

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

2、统计目录大小

1

2

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';

结果:

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

3、删除目录

1

2

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');

删除成功的提示信息

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

4、复制目录

1

2

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教程

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

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • PHP常用技术文之文件操作和目录操作总结_PHP教程
  • 专题推荐

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

    认证0级讲师

    推荐视频教程
  • PHP常用技术文之文件操作和目录操作总结_PHP教程javascript初级视频教程
  • PHP常用技术文之文件操作和目录操作总结_PHP教程jquery 基础视频教程
  • 视频教程分类