Hur man utför skalkommandon via PHP

Detta inlägg handlar om hur man utför skalkommandon via PHP. Istället för att manuellt skriva in ett kommando i Linux för att söka i mappstrukturen gör du alltså detta programmatiskt via PHP. Möjligheten att utföra skalkommandon via PHP är en kraftfull funktion och bör användas med försiktighet. Det är inte alla webbhotellleverantörer som tillåter dig att utföra skalkommandon via PHP.

PHP-funktionen för att utföra skalkommandon är: shell_exec(), exec() eller system().

De här funktionerna är mycket lika, men har små skillnader:

  • shell_exec() returnerar den fullständiga utgången som en sträng. Strängen kan vara NULL när ett fel inträffar eller om kommandot inte ger någon utdata.
  • exec() returnerar den sista raden i det utförda kommandot som en sträng. OBS: Använd exec() när du behöver tillgång till programmets utgång. shell_exec() ger inte information om programmets utgångskod.
  • system() liknar shell_exec() men visar utdata direkt (utan att använda echo() eller print()).

shell_exec() & exec() exempel:

Båda dessa skalfunktioner fungerar på samma sätt. Observera de tidigare nämnda skillnaderna.

<?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 innehåller \n radbrytningar. Använd str_replace(”\n”, ”<BR>”, shell_exec(”ls / -ltr”))) för att ersätta nya linjetecken med HTML-vänliga BR-tecken.

Exempel:

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() exempel:

Funktionen system() används också för att utföra skalkommandon 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ök https://anto.online för fler inlägg om PHP!

Om författarna

Varje medlem av Antos redaktion är en moln-expert i sin egen rätt. Anto Online är mycket stolt över att hjälpa andra Cloud-entusiaster. Låt oss veta om du har en utmärkt idé till nästa ämne!

Support the Cause

Support Anto Online och bjud oss på kaffe. Allt är möjligt med kaffe och kod.

Bjud mig på kaffe

Lämna ett svar

Din e-postadress kommer inte publiceras.