Jak spouštět příkazy shellu přes PHP

Tento příspěvek pojednává o tom, jak spouštět příkazy shellu přes PHP. Tedy místo toho, abyste v Linuxu ručně zadávali příkaz k prohledání adresářové struktury, provedete to programově prostřednictvím PHP. Možnost spouštět příkazy shellu prostřednictvím PHP je mocná funkce a měla by se používat opatrně. Ne všichni poskytovatelé hostingu vám umožní spouštět příkazy shellu prostřednictvím PHP.

Funkce PHP pro spouštění příkazů shellu jsou: shell_exec(), exec() nebo system().

Tyto funkce jsou si velmi podobné, ale mají drobné rozdíly:

  • shell_exec() vrací kompletní výstup jako řetězec. Řetězec může být NULL, pokud dojde k chybě nebo pokud příkaz nevytvoří žádný výstup.
  • exec() vrací poslední řádek provedeného příkazu jako řetězec. POZNÁMKA: Funkci exec() použijte, pokud potřebujete přístup k výstupu programu. shell_exec() neposkytuje informace o výstupním kódu programu.
  • system() je podobná funkci shell_exec(), ale výstup zobrazuje přímo (bez použití echo() nebo print()).

shell_exec() & exec() příklad:

Obě tyto funkce shellu pracují stejně. Všimněte si dříve uvedených rozdílů.

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

Výsledek:

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 ….

Odpověď obsahuje \n zalomení řádků. Použijte str_replace(„\n“, „<BR>“, shell_exec(„ls / -ltr“)), abyste nahradili znaky nového řádku za BR přívětivé pro HTML.

Příklad:

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

příklad funkce system():

Funkce system() se také používá ke spouštění příkazů shellu prostřednictvím jazyka PHP.

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

Výsledek:

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 ….

Navštivte https://anto.online pro další příspěvky o PHP!“

O autorech

Každý člen redakčního týmu Anto je sám o sobě odborníkem na cloud. Anto Online je hrdý na to, že může pomáhat kolegům, kteří se věnují cloudu. Pokud máte vynikající nápad na další téma, dejte nám vědět!

Podpořte věc

Podpořte Anto Online a kupte nám kávu. S kávou a kódem je možné všechno.

Kupte mi kávu

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.