Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der Funktion exec() in PHP und wie man ihre Rückgabewertinstanz erhält

Detaillierte Erklärung der Funktion exec() in PHP und wie man ihre Rückgabewertinstanz erhält

伊谢尔伦
伊谢尔伦Original
2017-06-27 09:24:034826Durchsuche

exec

Externes Programm ausführen.

Syntax: string exec(string command, string [array], int [return_var]);

Rückgabewert: String

Funktionstyp: Betriebssystem und Umgebung

Inhaltsbeschreibung

Diese Funktion führt das externe Programm oder den externen Befehlseingabebefehl aus. Der Rückgabestring ist nur die letzte Zeile, die nach der Ausführung des externen Programms zurückgegeben wird. Wenn Sie einen vollständigen Rückgabestring benötigen, können Sie die Funktion PassThru() verwenden.

Wenn das Parameter-Array vorhanden ist, fügt der Befehl das Array zur Ausführung zum Parameter hinzu. Wenn Sie nicht möchten, dass das Array verarbeitet wird, können Sie unset() aufrufen, bevor Sie exec() ausführen. Wenn sowohl return_var- als auch Array-Parameter vorhanden sind, wird der Status nach der Ausführung des Befehls in return_var eingetragen.

Es ist erwähnenswert, dass Sie EscapeShellCmd() verwenden können, wenn Sie die vom Benutzer eingegebenen Daten verarbeiten und verhindern möchten, dass der Benutzer Tricks spielt, um das System zu knacken.

F:
Wie erhalte ich einen Rückgabewert, nachdem exec("ping $PingDNS", $Info); ausgeführt wurde? Nach dem Ping kann exec nur die letzte zurückgegebene Zeile zurückgeben, nachdem das externe Programm ausgeführt wurde. ! ! !

Antwort 1:
Funktion: passhru()
-------------------------------------------- -------------------------------------------------- --
Programmausführungsfunktionsbibliothek
Passthru
Führen Sie externe Programme aus, ohne die Ausgabedaten zu verarbeiten.

Syntax: string passhru(string command, int [return_var]);

Rückgabewert: String

Funktionstyp: Betriebssystem und Umgebung

Inhalt Beschreibung
Diese Funktion ähnelt Exec() und wird verwendet, um Befehlsanweisungen auszuführen und die Ergebnisse auszugeben. Wenn der Parameter return_var vorhanden ist, wird der Status nach der Ausführung des Befehls in return_var eingetragen. Wenn es sich bei den Ausgabedaten um Binärdaten handelt, die an den Browser ausgegeben werden müssen, ist die Verwendung dieser Funktion durchaus sinnvoll. Verwenden Sie beispielsweise das Tool pbmplus, um Anweisungen auszuführen und binäre Grafikdaten zurückzugeben. Sie können zunächst den Header der zurückgegebenen Daten auf „Content-type: image/gif“ konfigurieren, dann das Programm pbmplus aufrufen, um die Grafikdaten zu verarbeiten, und die binären Grafikdaten direkt an den Browser zurückgeben.

exec("ping $PingDNS", $Info);
gibt eine Zeichenfolge in der Form zurück:
Antwort von x.x.x.x: Bytes=32 Zeit<10ms TTL=128
Bad IP Adresse expert.csdn.NET
...
Es kann anhand des Inhalts dieser Zeichenfolgen analysiert werden
Außerdem wird der Ausführungsprozess in $Info gespeichert

Anhang:

Heute verwende ich diese Funktion, wenn das Front-End-PHP eine Nachricht an das Back-End C sendet:

Das Back-End erfordert, dass nach dem Schreiben des Betriebsprotokolls nach der Benutzer-Bedienoberfläche eine Nachricht gesendet wird muss an das Backend C gesendet werden

$juser = $_SESSION['wms_user'];

exec("/usr/local/apam_new/bin /apam_debug -a Operate:$juser,1");

//Das Folgende ist meine Testmethode:

//Überprüfen Sie, ob die Nachricht an den Hintergrund gesendet wird

exec("/usr/local/apam_new/bin/apam_debug -a Operate: $juser,1",$info);

echo var_dump($info);

Das Ergebnis wird angezeigt Dass die Nachricht an den Hintergrund gesendet wird und die Hintergrunddruckinformationen an die FirebugSpalte

von Firefox ausgegeben werden, dient hauptsächlich dazu, das Verständnis der exec()-Funktion von PHP zu verbessern!

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Funktion exec() in PHP und wie man ihre Rückgabewertinstanz erhält. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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