unter Verwendung von Proc_open für Stream -Handling in php
bei Verwendung von exec () in PHP können es von Vorteil sein, sterr auch im Fall von Fehlern zu überprüfen. Während der Verwendung von PHP: // Stderr ist eine Option, bietet Proc_open einen umfassenden Ansatz, um sowohl Stderr- als auch Stdout -Streams separat zu behandeln.
Betrachten $ DescriptorSpec = [ 0 => ["Pipe", "r"], // stdin 1 => ["Pipe", "W"], // stdout 2 => ["Pipe", "W"], // Stderr ]; // den Befehl ausführen $ process = proc_open ('./ test.sh', $ Deskriptorspec, $ pipes, dirname (__ file__), null); // Lesen Sie aus den Ausgabestreams $ stdout = stream_get_contents ($ pipes [1]); fcLose ($ pipes [1]); $ stderr = stream_get_contents ($ pipes [2]); fcLose ($ pipes [2]); // die Ergebnisse ausgeben echo "stdout: \ n"; var_dump ($ stdout); echo "stderr: \ n"; var_dump ($ stderr);
// Initialize stream descriptors $descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"], // stderr ]; // Execute the command $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); // Read from the output streams $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); // Output the results echo "stdout:\n"; var_dump($stdout); echo "stderr:\n"; var_dump($stderr);
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3