Freitag, 13. Juni 2014

Parse PS Output in PHP

Lange ist mein letzter Post her, hier nun mal wieder ein kleines Script von mir. Ich musste anhand des "Command-String" testen ob ein Process rennt. Ich habe mich hierfür der Ausgabe von "ps aux" bedient. Diese Ausgabe in PHP zu parsen, war nach einer kurzen Google-Recherche angeblich nicht als zu trivial. Nun habe ich mich mal komplett selbst dran gesetzt und bin zu folgendem Ergebnis gekommen:

    const PS_COLUMNS_COUNT = 11;

    protected function parse($psOutput) {
        $rows = array();
        $lines = explode("\n", $psOutput);
        $headerColums = preg_split('![\s]+!', array_shift($lines));
        foreach ($lines AS $line) {
            $lineColumns = preg_split('![\s]+!', $line, self::PS_COLUMNS_COUNT);
            if (count($lineColumns) == self::PS_COLUMNS_COUNT) {
                $rows[] = array_combine($headerColums, $lineColumns);
            }
        }
        return $rows;
    }

im Grunde recht simple. So long...

Keine Kommentare:

Kommentar veröffentlichen