source: spip-zone/_plugins_/mutualisation/inc/dirliste.php @ 48944

Last change on this file since 48944 was 48944, checked in by yffic@…, 10 years ago

Ajout des colonnes dans la page exec=mutualisation permettant de visualiser la taille des répertoires local, IMG et tmp/cache. Les calculs de sont lancés qu'après appui sur un bouton car ils sont assez long à effectuer. Ces calculs sont lancés en ajax, si le résultat en cours d'élaboration dépasse 500Mo (sans doute à régler à l'usage), la phase ajax est relancée pour chacun des sous répertoires (Ceci doit permettre d'éviter d'atteindre le max_execution_time de php).

Voilà, c'est à tester et si ça pose des problèmes que je n'ai pas vus, je dé-commite.

File size: 946 bytes
Line 
1<?php
2
3// Ce programme appelé en ajax renvoie une  chaine de la forme XXX##rep1##rep2...
4//          où XXX vaut -1 si erreur et sinon le poids des fichiers du répertoire (hors sous-répertoires) en Mo
5//          où rep1, rep2,... le nom des sous-répertoires
6// Param dir : répertoire à explorer
7
8echo dirliste($_GET['dir']);
9
10function dirliste($path)
11{
12        $liste = "" ;
13        $size = 0 ;
14
15        // Trailing slash
16        if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
17           $path .= DIRECTORY_SEPARATOR;
18        }
19
20   if (!is_dir($path)) {
21                return -1;
22        }
23
24        $handle=opendir($path) ;
25        while (($file = readdir($handle)) !== false) {
26                // Skip pointers
27                if ($file == '.' || $file == '..') {
28                        continue;
29                }
30
31                if (is_dir($path.$file)) {
32                        $liste .= '##'.$file;
33                } elseif (is_file($path.$file)) {
34                        $size += filesize($path.$file);
35                } else {
36                        echo $file;
37                }
38        }
39        closedir($handle) ;
40
41        return round($size/1024/1024,2).$liste;
42
43}
44
45?>
Note: See TracBrowser for help on using the repository browser.