Bonjour,
Je souhaite developper un script php m'indiquant le nombre et la taille de fichier présent sur mon disque dur.
existerait-il idealement une fonction en php ? ou alors une fonction sous windows ?
Merci
<?
function calc_size_Rdir($dir_start){
require ("15.php");
$files = glob("$dir_start\*");
if ($files) foreach ($files as $file) {
if (is_dir($file))
$size += calc_size_Rdir($file);
elseif(substr($file,-4,1)=='.'){
$ext = substr($file,-4);
if ($ext=='.doc'){
$size += round(filesize($file)/1048576,2);
$j++;
}
if ($ext=='.zip') {
$size1 += round(filesize($file)/1048576,2);
$p++;
}
if ($ext=='.pdf') {
$size2 += round(filesize($file)/1048576,2);
$c++;
}
if ($ext=='.txt') {
$size3 += round(filesize($file)/1048576,2);
$a++;
}
if ($ext=='.jpg') {
echo "$file <br>";
$size4 += round(filesize($file)/1048576,2);
$f++;
}
if ($ext=='.exe') {
$size5 += round(filesize($file)/1048576,2);
$m++;
}
if ($ext=='.dll') {
$size6 += round(filesize($file)/1048576,2);
$k++;
}
}
}
}
?>
Dans 15.php je definis mes variables
<?
$a=0;
$j=0;
$p=0;
$c=0;
$f=0;
$m=0;
$k=0;
$size=0;
$size1=0;
$size2=0;
$size3=0;
$size4=0;
$size5=0;
$size6=0;
$espace = 0 ;
?>
apres j'appelleces fichiers dans mon 13.php
<?php
$dir = 'C:';
require ("15.php");
include ("12.php");
calc_size_Rdir($dir);
echo "il y a <strong> $j</strong> fichiers .doc,
la taille du(es) fichier(s) .doc est de <strong>$size </strong> Mo<br>";
echo "il y a <strong>$p</strong> fichiers .zip,
la taille du(es) fichier(s) .zip est de <strong>$size1</strong> Mo<br>";
echo "il y a <strong>$c</strong> fichiers .pdf,
la taille du(es) fichier(s) .pdf est de <strong>$size2</strong> Mo<br>";
echo "il y a <strong>$a</strong> fichiers .txt,
la taille du(es) fichier(s) .txt est de <strong>$size3</strong> Mo<br>";
echo "il y a <strong>$f</strong> fichiers .jpg,
la taille du(es) fichier(s) .jpg est de <strong>$size4</strong> Mo<br>";
echo "il y a <strong>$m</strong> fichiers .exe,
la taille du(es) fichier(s) .exe est de <strong>$size5</strong> Mo<br>";
echo "il y a <strong>$k</strong> fichiers .dll,
la taille du(es) fichier(s) .dll est de <strong>$size6</strong> Mo<br>";
?>
Voila, comme vous pouvez le voir, j'appelle 15.php dans 12.php
<?
function calc_size_Rdir($dir_start){
require ("15.php");
le problème c'est que 15.php reinitialise mes variables a 0. Si je ne le met pas dans la fonction, mon programme m'annonce que toutes mes variables que normalement sont déclaré dans 12.php ne sont pas definies.
$var1 = 0;
$var2 = 0;
function incremente() {
global $var1; // fait référence au $var1 externe
var $var2; // sans global est considéré comme une variable interne indépendante
$var1++;
$var2++;
}
incremente();
echo $var1; // affiche "1"
echo $var2; // affiche "0", car c'est uniquement le $var2 de la fonction qui a été modifié
Par contre, y a peut être plus judicieux ou du moins plus explicite comme nom pour tes scripts que 12 et 15