ホームページ  >  記事  >  バックエンド開発  >  フォルダ情報を取得するPHP統計関数

フォルダ情報を取得するPHP統計関数

WBOY
WBOYオリジナル
2016-07-25 08:56:091462ブラウズ
  1. //統計フォルダー関連情報

  2. //統計ディレクトリ数
  3. //フォーマット出力ディレクトリサイズ単位:バイト、KB、MB、GB
  4. function getFolderSize( $ path)
  5. {
  6. $totalsize = 0;
  7. $totalcount = 0;
  8. $dircount = 0;
  9. if ($handle = opendir ($path))
  10. {
  11. while (false !== ($file = readdir( $ハンドル)))
  12. {
  13. $nextpath = $path . '/' . $file;
  14. if ($file != '.' && $file != '..' && !is_link ($nextpath))
  15. if (is_dir ($nextpath))
  16. {
  17. $dircount++;
  18. $result = getFolderSize($nextpath);
  19. $totalsize += $result['size'];
  20. $totalcount += $result['count'] ;
  21. $dircount += $result['dircount'];
  22. }
  23. elseif (is_file ($nextpath))
  24. {
  25. $totalsize += filesize ($nextpath);
  26. $totalcount++;
  27. }
  28. }
  29. }
  30. }
  31. Closedir ($handle);
  32. $total['size'] = $totalsize;
  33. $total['count'] = $totalcount;
  34. $total['dircount'] = $dircount;
  35. return $total;
  36. } < ;/p>
  37. //出力情報のフォーマット

  38. function sizeFormat($size)
  39. {
  40. $sizeStr='';
  41. if($size<1024)
  42. {
  43. return $size." bytes" ;
  44. }
  45. else if($size<(1024*1024))
  46. {
  47. $size=round($size/1024,1);
  48. return $size." KB";
  49. }
  50. else if($size< (1024 *1024*1024))
  51. {
  52. $size=round($size/(1024*1024),1);
  53. return $size." MB";
  54. } bbs.it-home.org
  55. else
  56. {
  57. $ size=round($size/(1024*1024*1024),1);
  58. return $size." GB";
  59. }
  60. }
  61. $path="/var/www";
  62. $ar= getFolderSize( $path);
  63. echo "

    表示しているパス: $path

    ";
  64. echo "ディレクトリ サイズ: ".sizeFormat($ar['size'])。"echo "ファイル数: ".$ar['count']."
    ";
  65. echo "ディレクトリ数: ".$ar['dircount']."
    "; < ;/p>
  66. //Output

  67. //print_r($ar);
  68. ?>

コードをコピー
例 2、フォルダー サイズを取得する PHP 関数

  1. // フォルダーのサイズを取得します
  2. function getDirSize($dir)
  3. {
  4. $handle = opendir($dir)
  5. while (false!==($FolderOrFile = readdir($)ハンドル)))
  6. {
  7. if($FolderOrFile != "." && $FolderOrFile != "..")
  8. {
  9. if(is_dir("$dir/$FolderOrFile"))
  10. {
  11. $sizeResult += getDirSize ("$dir/$FolderOrFile");
  12. }
  13. else
  14. {
  15. $sizeResult += filesize("$dir/$FolderOrFile");
  16. closedir($handle);
  17. }
  18. // 自動単位変換関数
  19. function getRealSize($size)
  20. {
  21. $kb = 1024; // キロバイト
  22. $mb = 1024 * $kb; // メガバイト
  23. $gb = 1024;ギガバイト
  24. $tb = 1024 * $gb; // テラバイト
  25. if($size < $kb)
  26. {
  27. return $size." B"
  28. }
  29. else if($size < $mb)
  30. {
  31. returnround($size/$kb,2)." KB";
  32. }
  33. else if($size {
  34. returnround($size/$mb,2)." MB"; }
  35. else if($size < $tb)
  36. {
  37. returnround($size/$gb,2)." GB"
  38. }
  39. else
  40. {
  41. returnround($size/$tb,2). " TB";
  42. }
  43. }
  44. echo getRealSize(getDirSize('ディレクトリパス'))
  45. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。