ホームページ > バックエンド開発 > PHPチュートリアル > PHP共通技術記事のファイル操作とディレクトリ操作のまとめ_PHPチュートリアル

PHP共通技術記事のファイル操作とディレクトリ操作のまとめ_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:17:52
オリジナル
750 人が閲覧しました

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

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 ファイル名

*/

関数getFilePro($fileName)

{

if(!file_exists($fileName))

{

echo 'ファイルが存在しません
';

戻る;

}

/*これは普通のファイルですか*/

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 ファイル名

*/

関数getFileType($fileName)

{

$type = '';

スイッチ(ファイルタイプ($ファイル名))

{

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 .= 'unknown file';break;

デフォルト:

}

$type を返す;

}

/*

*ファイルサイズを返す関数を宣言します

*@param int $bytes ファイル内のバイト数

*/

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

}

その他

{

$return = $bytes;

$suffix = 'B';

}

return $return." ".$suffix;

}

/*関数を呼び出し、test ディレクトリ内の test.txt ファイルを渡します*/

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

?>

結果:

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

2. ディレクトリ操作

ディレクトリ操作には、ディレクトリのトラバーサル、削除、コピー、サイズ統計などが含まれます。

1. ディレクトリを横断する

結果

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

/*

*ディレクトリをトラバースする

*@param string $dirName ディレクトリ名

*/

関数 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.'サブファイル' があります。

}

/*現在のディレクトリの下にテストディレクトリを渡します*/

findDir('./test');

結果:

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

/*

*統計ディレクトリのサイズ

*@param string $dirName ディレクトリ名

*@return double

*/

関数 dirSize($dirName)

{

$dir_size = 0;

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

{

while ($fileName = readdir($dir_handle))

{

/*2 つの特別なディレクトリを除外します*/

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

$dir_size を返す;

}

}

/*現在のディレクトリの下にテストディレクトリを渡します*/

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

echo './test ディレクトリのファイル サイズは: '.round($dir_size / pow(1024,1),2).'KB';

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 ディレクトリ名

*/

関数delDir($dirName)

{

/*php の mkdir 関数はディレクトリを作成できます*/

if(file_exists($dirName))

{

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

{

while ($fileName = readdir($dir_handle))

/*2 つの特別なディレクトリを除外します*/

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.'ディレクトリは削除されました';

}

}

}

/*テスト ディレクトリ test1 のコピーを渡します*/

echo delDir('./test1');

削除が成功した場合のプロンプトメッセージ

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 ターゲットディレクトリ名

*/

関数 copyDir($dirSrc,$dirTo)

{

if(is_file($dirTo))

{

echo 'ターゲット ディレクトリを作成できません';/*ターゲットは 1 つではありません*/

戻る;

}

if(!file_exists($dirTo))

{

/*ディレクトリが存在しない場合は作成します*/

mkdir($dirTo);

}

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

{

while ($fileName = readdir($dir_handle))

{

/*2 つの特別なディレクトリを除外します*/

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

$dirSrc.' ディレクトリが '.$dirTo.' ディレクトリにコピーされました。

}

}

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

http://www.bkjia.com/PHPjc/886550.html

www.bkjia.com

http://www.bkjia.com/PHPjc/886550.html技術記事よく使われるPHPのファイル操作とディレクトリ操作のまとめ 技術文書 1. 基本的なファイル操作 ファイルの基本的な操作は、ファイル判定、ディレクトリ判定、ファイルサイズ、読み書き判定、存在...
ソース:php.cn
前の記事:php で http 呼び出しを使用する GET メソッドと POST メソッドの例、getpost_PHP チュートリアル 次の記事:画像回転効果の PHP 実装サンプル コード、_PHP チュートリアル
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート