Astuces php
Accueil
  News 
 Scripts 
 Bouquins 
 Newsletter 
  Emplois 
 Annuaire 
 Forum 
 
Offres d'emplois
Développeur PHP/MySQL
Start-up basée à Chantilly (60) à 35 minutes de Paris, recrute développeur PHP/MySQL confirmé en CDI, pour accompagner sa forte croissance. Comp...
 
 C'est ici
 
Avez vous lu ?
PHP 5 et MySQL 5
Avez vous lu ? -> PHP 5 et MySQL 5 : Présentation de l'éditeur
Ce livre explique comment se servir de PHP et de MySQL pour construire des sites Web dynamiques, interactifs et pratiques. Ce livre pratique inclut de nombreux exemples illustrant des tâches courantes comme l’authentification d’utilisateurs, la construction d’un caddie,...
 
 Commander
 
 Chapitres - Informations système
PHP 5 Astuces d'experts -> Informations système -> Une classe pour accéder aux informations système Une classe pour accéder aux informations système
PHP 5 Astuces d'experts -> Informations système -> Le programme complet Le programme complet
 Une classe pour accéder aux informations système
<?php
error_reporting
(5);

class 
systeme {
  
// --- retourne un tableau indiquant la charge système
  
function infos_charge() {
    if (
$fd fopen("/proc/loadavg""r")) {
      
$results split(" "fgets($fd4096));
      
fclose($fd);
    }
    else {
      
$results = array("xx","xx","xx");
    }
    return 
$results;
  }

   
// --- retourne la valeur de uptime
  
function infos_uptime() {
    
$fd fopen("/proc/uptime""r");
    
$tmptb split(" "fgets($fd4096));
    
fclose($fd);
    
$secondes trim($tmptb[0]);
    
$min $secondes 60;
    
$heures $min 60;
    
$jours floor($heures 24);
    
$heures floor($heures - ($jours 24));
    
$min floor($min - ($jours 60 24) - ($heures 60));
    if (
$days != 0) {
      
$result "$jours jours, ";
    }
    if (
$hours != 0) {
      
$result .= "$heures heures, ";
    }
    
$result .= "$min minutes";
    return 
$result;
  }
  
// --- retourne le nombre de sessions Apache
  
function infos_apache() {
    
$result trim(`ps -e | fgrep httpd |  wc -l`);
    return 
$result;
  }

  
// --- retourne des informations sur la CPU
  
function infos_cpu() {
    
$results = array();
    
$tmptb = array();
    if (
$fd fopen("/proc/cpuinfo""r")) {
      while (
$buf fgets($fd4096)) {
        list(
$key$value) = preg_split("/\s+:\s+/"trim($buf), 2);
        switch (
$key) {
          case 
"model name":
            
$results['model'] = $value;
            break;
          case 
"cpu MHz":
            
$results['mhz'] = sprintf("%.2f"$value);
            break;
          case 
"clock":
            
$results['mhz'] = sprintf("%.2f"$value);
            break;
          case 
"cpu":
             
$results['model'] = $value;
             break;
          case 
"revision":
             
$results['model'] .= " (rev: " $value ")";
             break;
          case 
"cache size":
             
$results['cache'] = $value;
             break;
          case 
"bogomips":
             
$results['bogomips'] += $value;
             break;
          case 
"processor":
             
$results['cpus'] += 1;
             break;
        }
      }
      
fclose($fd);
    }
    
$keys compat_array_keys($results);
    
$keys2be = array("model""mhz""cache""bogomips""cpus");
    while (
$tmptb each($keys2be)) {
      if (!
compat_in_array($tmptb[1], $keys)) {
       
$results[$tmptb[1]] = 'N.A.';
      }
    }
    return 
$results;
  }
  
// --- informations sur la mémoire et la zone de swap
  
function infos_memoire() {
    if (
$fd fopen("/proc/meminfo""r")) {
      while (
$buf fgets($fd4096)) {
        if (
preg_match("/Mem:\s+(.*)$/"$buf$tmptb)) {
          
$tmptb preg_split("/\s+/"$tmptb[1], 6);
          
$results['ram'] = array();
          
$results['ram']['total'] = $tmptb[0] / 1024;
          
$results['ram']['used'] = $tmptb[1] / 1024;
          
$results['ram']['free'] = $tmptb[2] / 1024;
          
$results['ram']['shared'] = $tmptb[3] / 1024;
          
$results['ram']['buffers'] = $tmptb[4] / 1024;
          
$results['ram']['cached'] = $tmptb[5] / 1024;
          
$results['ram']['t_used'] = $results['ram']['used']
            - 
$results['ram']['cached']
            - 
$results['ram']['buffers'];
          
$results['ram']['t_free'] = $results['ram']['total']
            - 
$results['ram']['t_used'];
          
$results['ram']['percent'] = round(
            (
$results['ram']['t_used'] * 100)
            / 
$results['ram']['total']);
        }
        if (
preg_match("/Swap:\s+(.*)$/"$buf$tmptb)) {
          
$tmptb preg_split("/\s+/"$tmptb[1], 3);
          
$results['swap'] = array();
          
$results['swap']['total'] = $tmptb[0] / 1024;
          
$results['swap']['used'] = $tmptb[1] / 1024;
          
$results['swap']['free'] = $tmptb[2] / 1024;
          
$results['swap']['percent'] = round(($tmptb[1] * 100)
            / 
$tmptb[0]);
          break;
        }
      }
      
fclose($fd);
    }
    else {
      
$results['ram'] = array();
      
$results['swap'] = array();
    }
    return 
$results;
  }

  
// --- Retourne un tableau avec les informations sur chaque
  // partition. Ces informations sont elles-mêmes stockées
  // dans un tableau associatif
  
function infos_disque() {
    
$df = `/bin/df -kP`;
    
$mounts split("\n"$df);
    
$fstype = array();
    if (
$fd fopen("/proc/mounts""r")) {
      while (
$buf fgets($fd4096)) {
        list(
$dev$mpoint$type) = preg_split("/\s+/"trim($buf), 4);
        
$fstype[$mpoint] = $type;
        
$fsdev[$dev] = $type;
      }
      
fclose($fd);
    }
    for (
$i 1$i sizeof($mounts) - 1$i++) {
      
$tmptb preg_split("/\s+/"$mounts[$i], 6);
      
$results[$i 1] = array();
      
$results[$i 1]['disk'] = $tmptb[0];
      
$results[$i 1]['size'] = $tmptb[1];
      
$results[$i 1]['used'] = $tmptb[2];
      
$results[$i 1]['free'] = $tmptb[3];
      
$results[$i 1]['percent'] = $tmptb[4];
      
$results[$i 1]['mount'] = $tmptb[5];
      (
$fstype[$tmptb[5]]) ? $results[$i 1]['fstype'] =
        
$fstype[$tmptb[5]] : $results[$i 1]['fstype'] =
        
$fsdev[$tmptb[0]];
    }
    return 
$results;
  }

  
// --- fonction de formattage
  
function format_ko($ko$decimales 2) {
    if (
$ko 1048576) {
      
$result sprintf("%." $decimales "f"$ko 1048576);
      
$result .= ' Go';
    }
    elseif (
$ko 1024) {
      
$result sprintf("%." $decimales "f"$ko 1024);
      
$result .= ' Mo';
    }
    else {
      
$result sprintf("%." $decimales "f"$ko);
      
$result .= ' Ko';
    }
    return 
$result;
  }

}
?>
 Rechercher
Tapez un mot ou une phrase clé
 

 Téléchargement
Téléchargez les sources de l'ouvrage
PHP 5 solutions et composants open-source
Téléchargez les sources de l'ouvrage  -> PHP 5 solutions et composants open-source : Boostez et améliorez vos sites PHP avec des composants et extensions !

Voici enfin l'ouvrage pour améliorer votre site sans tout réécrire. Pourquoi réinventer la roue puisqu'il existe une multitude de composants indépendants à intégrer à votre site ou même des extensions au langage PHP qui peu...
 


Derniers tickets
  • bandeaux publicita... ()
  • Mail avec liste de... ()
  • pb install wamp ()
  • Bouton recalculer ()
  •  

    copyright astuces-php.info - Plan du site - Mylinea.org : l'annuaire des annuaires - échange de liens - Faites du fric