]> 91.132.146.200 Git - dolphin.git/commitdiff
folder size
authorBanana <banana@optimus.de>
Sun, 10 Nov 2019 21:38:36 +0000 (22:38 +0100)
committerBanana <banana@optimus.de>
Sun, 10 Nov 2019 21:38:36 +0000 (22:38 +0100)
single-functions/folder-size-large.php [new file with mode: 0644]
single-functions/folder-size.php [new file with mode: 0644]

diff --git a/single-functions/folder-size-large.php b/single-functions/folder-size-large.php
new file mode 100644 (file)
index 0000000..cc7e486
--- /dev/null
@@ -0,0 +1,27 @@
+<?php
+/**
+ *  dolphin. Collection of useful PHP skeletons.
+ *  Copyright (C) 2019  Johannes 'Banana' Keßler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+ *
+ * You should have received a copy of the
+ * COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+ * along with this program.  If not, see http://www.sun.com/cddl/cddl.html
+ */
+
+/**
+ * Get the folder size with a unix command.
+ * Usefull when on linux only and large files
+  *
+ * @param string $folder Absolute path to the folder
+ */
+function folderSize($folder) {
+       $io = popen ( '/usr/bin/du -sk ' . folder, 'r' );
+       $size = fgets ( $io, 4096);
+       $size = substr ( $size, 0, strpos ( $size, "\t" ) );
+       pclose ( $io );
+       
+       return $size;   
+}
diff --git a/single-functions/folder-size.php b/single-functions/folder-size.php
new file mode 100644 (file)
index 0000000..78bda3c
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ *  dolphin. Collection of useful PHP skeletons.
+ *  Copyright (C) 2019  Johannes 'Banana' Keßler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+ *
+ * You should have received a copy of the
+ * COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+ * along with this program.  If not, see http://www.sun.com/cddl/cddl.html
+ */
+
+/**
+ * Simple functon to get the size of a folder
+ * ignores . files and does not really work well with large files
+ *
+ * @param string $folder Absolute path to folder
+ */
+function folderSize($folder) {
+       $ret = 0;
+
+       if(file_exists($folder) && is_readable($folder)) {
+               foreach (glob(rtrim($folder, '/') . '/*', GLOB_NOSORT) as $each) {
+                       $ret += is_file($each) ? filesize($each) : folderSize($each);
+               }
+       }
+
+       return $ret;
+}