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.