Heim > Backend-Entwicklung > PHP-Tutorial > Wie erfasst man den Standardfehler (StdErr) von „exec()' in PHP?

Wie erfasst man den Standardfehler (StdErr) von „exec()' in PHP?

Barbara Streisand
Freigeben: 2024-12-13 02:54:09
Original
266 Leute haben es durchsucht

How to Capture Standard Error (StdErr) from `exec()` in PHP?

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage