Das ist natürlich vom Format deiner Daten abhängig. Nicht jedes UNIX-System liefert die genau gleichen Daten Ich würde auf jeden Fall die ganze Datei einlesen und dann weiterverarbeiten. Hier ein Beispiel:
info.txt (Solaris)
Code:
/ (/dev/vx/dsk/rootvol): 206096 blocks 104980 files
/usr (/dev/vx/dsk/usr ): 2604412 blocks 299320 files
/proc (/proc ): 0 blocks 3826 files
/dev/fd (fd ): 0 blocks 0 files
/etc/mnttab (mnttab ): 0 blocks 0 files
/var (/dev/vx/dsk/var ): 4329766 blocks 378052 files
/var/run (swap ): 3720944 blocks 25601 files
/tmp (swap ): 3720944 blocks 25601 files
/opt (/dev/vx/dsk/opt ): 2249384 blocks 297886 files
die Auswertung:
Code:
<?php
class df
{
var $mp;
var $fs;
var $blocks;
var $files;
};
$fp = fopen('info.txt', 'r');
while ($zeile = fgets($fp, 128))
{
preg_match('#^(/.*)\s*\((.*)\s*\):\s*(\d*)\s*blocks\s*(\d*)\s*files#U', $zeile, $found);
$df_ele = new df;
$df_ele->mp = $found[1];
$df_ele->fs = $found[2];
$df_ele->blocks = $found[3];
$df_ele->files = $found[4];
$df_ar[] = $df_ele;
}
fclose($fp);
var_d($df_ar);
?>
In diesem Beispiel sind am Schluss alle Daten im Array $df_ar. Bei anderen Ausgaben musst du den Regex und die Klasse entsprechend anpassen.