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

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體:   |    |    |  超大  

php常用的基本文件和目录操作总结来源:http://www.ido321.com/835.html

一、基本文件的操作

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

1: <?php

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 '文件不存在<br/>';

12: return;

13: }

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

15: if(is_file($fileName))

16: {

17: echo $fileName.'是一个文件<br/>';

18: }

19: /*是否是目录*/

20: if(is_dir($fileName))

21: {

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

23: }

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

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

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

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

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

29: if(is_readable($fileName))

30: {

31: echo '文件可读<br/>';

32: }

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

34: if(is_writable($fileName))

35: {

36: echo '文件可写<br/>';

37: }

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

39: if(is_executable($fileName))

40: {

41: echo '文件可执行<br/>';

42: }

43:

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

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

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

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: /*

2: *遍历目录

3: *@param string $dirName 目录名

4: */

5: function findDir($dirName)

6: {

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

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

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

10: echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">';

11: echo '<caption><h2>目录'.$dirName.'下的文件</h2></caption>';

12: echo '<tr align="left" bgcolor="#cccccc"';

13: echo '<th>文件名</th><th>文件大小</th><th>文件类型</th><th>修改时间</th></tr>';

14:

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

16: {

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

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

19: echo '<tr bgcolor='.$bgcolor.'>';

20: echo '<td>'.$file.'</td>';

21: echo '<td>'.filesize($dirFile).'</td>';

22: echo '<td>'.filetype($dirFile).'</td>';

23: echo '<td>'.date('Y/n/t',filemtime($dirFile)).'</td>';

24: echo '</tr>';

25: }

26: echo "</table>";

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

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

29: }

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

31: findDir('./test');

结果

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、删除目录

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航