Heim >Backend-Entwicklung >PHP-Problem >Was ist der Unterschied zwischen System und Exec in PHP?
Der Unterschied zwischen System und Exec in PHP ist: System führt ein externes Programm aus und zeigt die Ausgabe an, und es kann Ergebnisse ausgeben und zurückgeben; Exec führt ein externes Programm aus und gibt keine Ergebnisse aus, sondern gibt die letzte Zeile des Ergebnisses zurück.
Der Aufruf externer Befehle in PHP kann mit exec und system erfolgen. Was sind also die Unterschiede zwischen ihnen? In diesem Artikel wird Ihnen der Unterschied zwischen System und Exec in PHP vorgestellt.
1. exec --- Ein externes Programm ausführen
string exec ( string $command [, array &$output [, int &$return_var ]] )
$command: Der auszuführende Shell-Befehl
$output: Die Ausgabe des Shell-Befehls füllt dieses Array und jede Ausgabezeile füllt ein Element im Array. Bitte beachten Sie, dass die Funktion exec() den Inhalt an das Ende des Arrays anfügt, wenn das Array bereits einige Elemente enthält. Wenn Sie nicht am Ende des Arrays anhängen möchten, verwenden Sie die Funktion unset(), um das Array zurückzusetzen, bevor Sie es an die Funktion exec() übergeben. Der Rückgabestatus nach der Befehlsausführung ist 0
ps: 2>&1exec ist nicht erfolgreich. Ein Trick zum Debuggen besteht darin, einen Pipeline-Befehl zu verwenden. Der Befehl gibt den Fehler während der Shell-Ausführung aus die $output-Variable. Gibt die Variable zur Analyse aus. Beispiel 1
(1) Struktur der index.php-Datei, in der sich der Code befindet
(2) Code $out = [34];
$res = exec('ls 2>&1',$out,$return_status);
var_dump($res);
echo '------';
var_dump($out);
echo '------';
var_dump($return_status);
( 3) Ausführungsergebnisse zhangxueqing:demo playcrab$ php ./1/index.php
/Users/playcrab/www/demo/1/index.php:10:
string(11) "webuploader"
------/Users/playcrab/www/demo/1/index.php:12:
array(10) {
[0] =>
int(34)
[1] =>
string(1) "1"
[2] =>
string(6) "1.html"
[3] =>
string(5) "1.php"
[4] =>
string(10) "client.php"
[5] =>
string(14) "design-pattern"
[6] =>
string(3) "img"
[7] =>
string(17) "jquery.blockUI.js"
[8] =>
string(10) "static.php"
[9] =>
string(11) "webuploader"
}
------/Users/playcrab/www/demo/1/index.php:14:
int(0)
Führen Sie das externe Programm aus und zeigen Sie die Ausgabe an string system ( string $command [, int &$return_var ] )
$command Der auszuführende Befehl $return_var Der Rückgabestatus nach der Befehlsausführung,
Ergebnis zurückgeben: Erfolgreiche Rückgabe 0,
Fehler (Befehl existiert nicht usw.) Rückgabewert ungleich 01. Beispielcode $res = system('ls 2>&1',$return_status);var_dump($res);echo '------';var_dump($return_status);
2. Ergebnis ausgeben
Zusammenfassung: Die Funktion
Empfohlen: „
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen System und Exec in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!