21.20 Die Standardausgabe eines Programms lesen

Problem

Sie wollen die Ausgabe eines Programms einlesen; zum Beispiel wollen Sie die Ausgabe eines System-Tools lesen, wie z.B. route(8), das Netzwerkinformationen zur Verfügung stellt.

Lösung

Um den gesamten Inhalt einer Programmausgabe einzulesen, verwenden Sie den Backtick-Operator (`):

$routing_table = `/sbin/route`;

Um die Ausgabe stückweise auszulesen, öffnen Sie eine Pipeline mit popen():

$ph = popen('/sbin/route','r') or die($php_errormsg);
while (! feof($ph)) {
    $s = fgets($ph,1048576)    or die($php_errormsg);
}
pclose($ph)                    or die($php_errormsg);

Diskussion

Der Backtick-Operator (der im Safe Mode nicht zur Verfügung steht) führt ein Programm aus und gibt dessen gesamte Ausgabe als einen einzigen String ...

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.