当前位置:Gxlcms > PHP教程 > PHP常用的基本文件和目录操作总结_PHP教程

PHP常用的基本文件和目录操作总结_PHP教程

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

PHP常用的基本文件和目录操作总结


一、基本文件的操作

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

1:

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

3: /*

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

5: *@param string $fileName 文件名称

6: */

7: function getFilePro($fileName)

8: {

9: if(!file_exists($fileName))

10: {

11: echo '文件不存在
'
;

12: return;

13: }

14: /*是否是普通文件*/

15: if(is_file($fileName))

16: {

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

18: }

19: /*是否是目录*/

20: if(is_dir($fileName))

21: {

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

23: }

24: /*输出文件的型态*/

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

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

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

28: /*文件是否可读*/

29: if(is_readable($fileName))

30: {

31: echo '文件可读
'
;

32: }

33: /*文件是否可写*/

34: if(is_writable($fileName))

35: {

36: echo '文件可写
'
;

37: }

38: /*文件是否可执行*/

39: if(is_executable($fileName))

40: {

41: echo '文件可执行
'
;

42: }

43:

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

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

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

47: }

48:

49: /*

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

51: *@param string $fileName 文件名称

52: */

53: function getFileType($fileName)

54: {

55: $type = '';

56: switch(filetype($fileName))

57: {

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

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

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

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

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

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

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

65: default:

66: }

67: return $type;

68: }

69:

70: /*

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

72: *@param int $bytes 文件字节数

73: */

74: function getFileSize($bytes)

75: {

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

77: {

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

79: $suffix = 'TB';

80: }

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

82: {

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

84: $suffix = 'GB';

85: }

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

87: {

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

89: $suffix = 'MB';

90: }

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

92: {

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

94: $suffix = 'KB';

95: }

96: else

97: {

98: $return = $bytes;

99: $suffix = 'B';

100: }

101: return $return." ".$suffix;

102: }

103:

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

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

106: ?>

结果:

1

二、目录的操作

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

1、遍历目录

1: /*

2: *遍历目录

3: *@param string $dirName 目录名

4: */

5: function findDir($dirName)

6: {

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

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

9: /*输出目录文件*/

10: echo '

';

11: echo '

';

12: echo '

;

13: echo '

';

14:

15: while($file = readdir($dir_handle))

16: {

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

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

19: echo '

';

20: echo '

';

21: echo '

';

22: echo '

';

23: echo '

';

24: echo '

';

25: }

26: echo "

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

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

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

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

29: }

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

31: findDir('./test');

结果

2

2、统计目录大小

1: /*

2: *统计目录大小

3: *@param string $dirName 目录名

4: *@return double

5: */

6:

7: function dirSize($dirName)

8: {

9: $dir_size = 0;

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

11: {

12: while ($fileName = readdir($dir_handle))

13: {

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

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

16: {

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

18: if(is_file($subFile))

19: {

20: $dir_size += filesize($subFile);

21: }

22: if(is_dir($subFile))

23: {

24: $dir_size += dirSize($subFile);

25: }

26: }

27: }

28: closedir($dir_handle);

29: return $dir_size;

30: }

31: }

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

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

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

结果

3

3、删除目录

1: /*

2: *删除目录

3: *@param string $dirName 目录名

4: */

5: function delDir($dirName)

6: {

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

8: if(file_exists($dirName))

9: {

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

11: {

12: while ($fileName = readdir($dir_handle))

13: {

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

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

16: {

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

18: if(is_file($subFile))

19: {

20: unlink($subFile);

21: }

22: if(is_dir($subFile))

23: {

24: delDir($subFile);

25: }

26: }

27: }

28: closedir($dir_handle);

29: rmdir($dirName);

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

31: }

32: }

33: }

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

35: echo delDir('./test1');

删除成功的提示信息

4

4、复制目录

1: /*

2: *复制目录

3: *@param string $dirSrc 原目录名

4: *@param string $dirTo 目标目录名

5: */

6: function copyDir($dirSrc,$dirTo)

7: {

8: if(is_file($dirTo))

9: {

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

11: return;

12: }

13: if(!file_exists($dirTo))

14: {

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

16: mkdir($dirTo);

17: }

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

19: {

20: while ($fileName = readdir($dir_handle))

21: {

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

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

24: {

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

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

27: if(is_file($subSrcFile))

28: {

29: copy($subSrcFile,$subToFile);

30: }

31: if(is_dir($subSrcFile))

32: {

33: copyDir($subSrcFile,$subToFile);

34: }

35: }

36: }

37: closedir($dir_handle);

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

39: }

40: }

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



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

人气教程排行