PHP ist eine Programmiersprache verwendet, um reiche , interaktive Web -Anwendungen zu entwickeln . Allerdings möchten Sie vielleicht externe Programme oder System-Befehle aus einem PHP -Programm aufrufen , um zusätzliche Funktionalität zur Verbesserung der Effizienz hinzuzufügen. Dies kann durch die PHP exec () oder system () -Befehle , die leicht variieren in der Funktionalität und Syntax durchgeführt werden. Verwenden
Die exec () und system () -Befehle aus einem PHP-Programm zum System-Befehle oder externe Programme und Skripte ausführen verwendet werden. Dies ist wichtig , um die Fähigkeiten der PHP-Sprache und als Schnittstelle zu anderen Anwendungen auf dem Server zu erweitern . PHP wird angehalten , bis das externe Programm die Ausführung beendet , es sei denn die Ausgabe in eine Datei oder einen anderen Ausgang Puffer umgeleitet wird.
Unterschiede
Der primäre Unterschied zwischen der exec () und System ()-Befehle , wie ausgegeben von dem externen Programm behandelt wird . Das System ()-Befehl automatisch schreibt die Ergebnisse des ausgeführten Befehls auf den aktuellen Ausgabe-Puffer . Die exec ()-Befehl optional gibt die Ausgabe des ausgeführten Befehls als zusätzliche Array-Variable .
Syntax
Die exec () und system () -Befehle etwas verschiedene optionale Syntax , obwohl sie beide nur mit dem Pfad zu dem externen Programm ausgeführt werden. Beide Befehle erfordern einen Befehl als String formatiert und eine optionale Rückkehr Variable als Zeiger auf eine int formatiert , um die Rückkehr Status geben Sie den ausgeführten Befehl - Wert auf 0 gesetzt , wenn ohne Fehler und einen anderen Wert , wenn ein Fehler festgestellt wurde hingerichtet. Die exec ()-Befehl zusätzlich einen Output-Parameter als Zeiger auf ein Array Variable formatiert , die jede Zeile der Ausgabe des ausgeführten Befehls umfassen ohne nachgestellte Leerzeichen wie der Zeilenumbruch .
Sicherheit
Beim Ausführen externer Befehle oder Programme , ist es besonders wichtig , um die Sicherheit des Betriebs zu berücksichtigen. Bei der Verwendung Benutzereingaben , verwenden Sie die escapeshellarg () oder escapeshellcmd ()-Funktionen , um potenziell schädliche Operationen entfernen. Best Practices beinhalten nur die Ausführung einer bekannten weißen Liste von Befehlen , anstatt nur das Entfernen bekannt schädlichen Befehle .