Détecter automatiquement les disques durs d'un serveur

Fermé
difno - Modifié par jordane45 le 20/03/2017 à 16:14
 dinfo - 4 avril 2017 à 14:11
Bonjour,

Je voulais afficher dans un tableau la taille, l'espace libre ... de tous les disques durs d'un serveur mais les noms des disques durs ne sont pas stables c'est à dire on peut ajouter ou retirer des disques durs et du coup j'ai pensé à mettre ce code là:
    <?php 
 $data = array();
   $disques = array ("A:", "B:", "C:", "D:", "E:", "F:", "G:", "H:", "I:", "J:", "K:", "L:",          "M:", "N:", "O:", "P:", "Q:", "R:", "S:", "T:", "U:", "V:", "W:", "X:", "Y:", "Z:");
    // $disques = array ("C:", "G:");

$i =0;
 foreach($disques as $disque){
         //pour ajouter dans le tableau que les disques qui existent dans ce serveur
 if(!empty(disk_total_space($disque))){ 
        $disp = disk_free_space($disque);
 $total = disk_total_space($disque); 


$data[$i]['Nom_disque'] = $disque;
 $data[$i]['Taille_disponible'] = _format_bytes($disp);
    $data[$i]['Taille_utilise'] = _format_bytes($total - $disp);
        $data[$i]['Taille_total'] = _format_bytes($total);
        $data[$i]['Utilisation'] = number_format((_format_bytes(($total - $disp)                   /$total)) * 100, 0, ".", " ") ;
        $i++;

} 
}

EDIT : AJout des balises de code

Mais cette fonction 'disk_total_space($disque)' m'affiche un erreur quand il ne trouve pas le disque qui correspond aux alphabets que j'ai cités dans le tableau des disques :/

Je me suis bloquée là et je ne trouve pas une solution pour m'avancer ;( s'il vous plait j'ai besoins vraiment de votre aide et merci d'avance pour cela.

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
20 mars 2017 à 16:17
Bonjour,

TU n'as qu'a vérifier avant si le "disque" existe ou non.
https://www.php.net/manual/en/function.is-dir.php
0
Bonjour ,
Merci pour la réponse je vais essayer cette fonction :)
0
Bonjour,
Merci pour la fonction il fonctionne très bien :)
Mais il m'affiche toujours cette erreur et j'en savais pas pourquoi ! :
Warning: disk_total_space(): in C:\wamp\www\***.php on line 21
Voici le code:


 <?php 
   $data = array();
   $disques = array ("A:", "B:", "C:", "D:", "E:", "F:", "G:", "H:", "I:", "J:", "K:", "L:", "M:", "N:", "O:", "P:", "Q:", "R:", "S:", "T:", "U:", "V:", "W:", "X:", "Y:", "Z:");
    // $disques = array ("C:", "G:");

    $i =0;
   foreach($disques as $disque){
    if(is_dir($disque)){
 //pour ajouter dans le tableau que les disques actifs
  if(disk_total_space($disque)!=false){ 
           $disp = disk_free_space($disque);
    $total = disk_total_space($disque); 

 
         $data[$i]['Nom_disque'] = $disque;
    $data[$i]['Taille_disponible'] = _format_bytes($disp);
     $data[$i]['Taille_utilise'] = _format_bytes($total - $disp);
         $data[$i]['Taille_total'] = _format_bytes($total);
         $data[$i]['Utilisation'] = number_format((_format_bytes(($total -          $disp) /$total)) * 100, 0, ".", " ") ;
    $i++;

 } 
 }
} 

EDIT : Ajout des balises de code (... encore.... )

Merci d'avance pour votre aide.
Cordialement ;
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 27 mars 2017 à 18:40
Suffit de lire la doc... https://www.php.net/manual/fr/function.disk-total-space.php
Je suppose que ça vient de là :
Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.
0
Oui j'ai lu déjà la doc mais les disques ne sont pas distants ?!
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > dinfo
27 mars 2017 à 18:48
quel est le message d'erreur EXACT et COMPLET ?
0
Voici le message d'erreur:

( ! ) Warning: disk_total_space(): in C:\wamp\www\mondossier\disques.php on line 21
Call Stack
# Time Memory Function Location
1 0.0010 143880 {main}( ) ..\disques.php:0
2 0.0200 272384 disk_total_space ( ) ..\disques.php:21
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
27 mars 2017 à 19:06
Regarde si en modifiant le limite de temps ça ne corrigerait pas ton souci
https://www.php.net/manual/fr/function.set-time-limit.php
0