PHP-Fehlerbehandlung in Exec() mit StdErr
In PHP führt die Funktion exec() einen Befehl aus und gibt das Ergebnis zurück, einschließlich die URL, wenn die Ausführung erfolgreich ist. Möglicherweise möchten Sie jedoch auch über den Standardfehlerstrom (StdErr) auf Fehlermeldungen zugreifen. So geht's:
Eine Methode zur Behandlung von StdErr ist die Funktion proc_open, die mehr Kontrolle über die Befehlsausführung bietet. Betrachten Sie das folgende Beispiel:
// Initialize I/O descriptors $descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"] // stderr ]; // Execute the command using the descriptors $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); // Read from stdout and stderr pipes $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); // Output the content of stdout and stderr echo "stdout :\n"; var_dump($stdout); echo "stderr :\n"; var_dump($stderr);
In diesem Beispiel wird ./test.sh mit den angegebenen Deskriptoren ausgeführt und die Ausgabe von stdout und stderr wird erfasst. Bei der Ausführung zeigt das Skript die Inhalte von stdout und stderr separat an.
Durch die Verwendung von proc_open können Sie StdErr effektiv verarbeiten und auf alle Fehlermeldungen zugreifen, die während der Befehlsausführung in Ihren PHP-Skripten generiert werden.
Das obige ist der detaillierte Inhalt vonWie erfasst man den Standardfehler (StdErr) von „exec()' in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!