23.5 Die Ausgabe eines Kommandozeilen-Befehls weiterverarbeiten

Problem

Sie wollen die Ausgabe eines Befehls mit PHP weiterverarbeiten.

Lösung

Nutzen Sie eine Pipe (|) und die PHP-Konstanten STDIN und STDOUT.

#!/usr/bin/php
<?php
$zeilen = array();
while (false !== $zeile = fgets(STDIN, 1024)) {
    $zeile = trim($zeile);
    if ($zeile === '') {
        continue;
    }
    array_push($zeilen, $zeile);
}
sort($zeilen);
foreach ($zeilen as $zeile) {
    fputs(STDOUT, $zeile."\n");
}

Dieses Skript können Sie jetzt verwenden, um die Ausgabe eines beliebigen Befehls zu sortieren:

% ls -as | sort.php

Diskussion

Zuerst schreiben Sie ein Skript, das die Ausgabe eines Kommandozeilen-Befehls weiterverarbeiten soll. Um auf die Daten zuzugreifen, verwenden Sie die Konstante STDIN, genau so, ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.