Führen Sie den Prozess mit Echtzeitausgabe in PHP aus
In PHP kannst du die proc_open
-Funktion verwenden, um einen Prozess auszuführen und dessen Ausgabe in Echtzeit zu lesen. Hier ist ein Beispiel dafür:
<?php
$descriptorspec = [
0 => ["pipe", "r"], // stdin ist eine Pipe, von der das Kind lesen wird
1 => ["pipe", "w"], // stdout ist eine Pipe, in die das Kind schreiben wird
2 => ["pipe", "w"], // stderr ist eine Pipe, in die das Kind schreiben wird
];
$process = proc_open('echo "Hello World!"', $descriptorspec, $pipes);
if (is_resource($process)) {
while ($s = fgets($pipes[1])) {
print $s;
}
proc_close($process);
}
Dieses Beispiel führt den Befehl aus (echo „Hello World!“) und liest seine Ausgabe und Fehlerströme in Echtzeit mit der Funktion fgets
. Die Ausgabe wird dann auf dem Bildschirm ausgegeben. Beachten Sie, dass in diesem Beispiel $descriptorspec
ein Array mit Descriptor-Arrays enthält. Jedes Descriptor-Array enthält einen Pipetyp, entweder "pipe" zum Lesen oder "w" zum Schreiben, und die entsprechende Pipe.