Sådan udfører man shell-kommandoer via PHP

Dette indlæg omhandler hvordan man udfører shell-kommandoer via PHP. I stedet for manuelt at indtaste en kommando i Linux for at søge i mappestrukturen, gør du dette således programmatisk via PHP. Muligheden for at udføre shell-kommandoer via PHP er en kraftfuld funktion og bør bruges med omtanke. Det er ikke alle hostingudbydere, der tillader dig at udføre shell-kommandoer via PHP.

PHP-funktionen til at udføre shell-kommandoer er: shell_exec(), exec() eller system().

Disse funktioner ligner hinanden meget, men har små forskelle:

  • shell_exec() returnerer det komplette output som en streng. Strengen kan være NULL, hvis der opstår en fejl, eller hvis kommandoen ikke giver noget output.
  • exec() returnerer den sidste linje i den udførte kommando som en streng. BEMÆRK: Brug exec(), når du har brug for adgang til programmets exit. shell_exec() giver ikke oplysninger om programmets exitkode.
  • system() svarer til shell_exec(), men viser output direkte (uden at bruge echo() eller print()).

shell_exec() & exec() eksempel:

Både disse shell-funktioner fungerer på samme måde. Bemærk de tidligere nævnte forskelle.

<?echo shell_exec("ls / -ltr");?>

Resultat:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

Svaret indeholder \n linjeskift. Brug str_replace(“\n”, “<BR>”, shell_exec(“ls / -ltr”))) til at erstatte newline-tegn med HTML-venlige BR’er.

Eksempel:

total 2097248drwxr-xr-x 2 root root 4096 Apr 26 19:07 optdrwxr-xr-x 2 root root 4096 Apr 26 19:07 mediadrwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64

system() eksempel:

Funktionen system() bruges også til at udføre shell-kommandoer via PHP.

<?system("ls / -ltr");?>

Resultat:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

Besøg https://anto.online for flere indlæg om PHP!

Om forfatterne

Hvert medlem af Antos redaktion er en Cloud-ekspert i sin egen ret. Anto Online sætter en stor ære i at hjælpe andre Cloud-entusiaster. Lad os vide, hvis du har en fremragende idé til det næste emne!

Support the Cause

Support Anto Online og køb en kop kaffe til os. Alt er muligt med kaffe og kode.

Køb mig en kaffe

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.