Jak wykonywać polecenia powłoki poprzez PHP

Ten post omawia jak wykonywać polecenia powłoki poprzez PHP. W ten sposób, zamiast ręcznie wpisywać polecenie w Linuksie, aby przeszukać strukturę folderów, robisz to programowo poprzez PHP. Możliwość wykonywania komend powłoki poprzez PHP jest potężną funkcją i powinna być używana ostrożnie. Nie wszyscy dostawcy usług hostingowych pozwalają na wykonywanie poleceń powłoki przez PHP.

Funkcją PHP służącą do wykonywania poleceń powłoki jest: shell_exec(), exec() lub system().

Funkcje te są bardzo podobne, ale mają drobne różnice:

  • shell_exec() zwraca kompletne wyjście jako łańcuch znaków. Łańcuch ten może mieć wartość NULL, gdy wystąpi błąd lub gdy polecenie nie daje żadnego wyniku.
  • exec() zwraca ostatni wiersz wykonanego polecenia jako łańcuch. UWAGA: Użyj exec() gdy potrzebujesz dostępu do wyjścia programu. shell_exec() nie dostarcza informacji o kodzie zakończenia programu.
  • system() jest podobna do shell_exec() lecz wyświetla wyjście bezpośrednio (bez użycia echo() lub print()).

shell_exec() & exec() przykład:

Obydwie te funkcje powłoki działają w ten sam sposób. Zwróć uwagę na wcześniej wspomniane różnice.

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

Wynik:

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

Odpowiedź zawiera \n podziały wiersza. Użyj str_replace(„\n”, „<BR>”, shell_exec(„ls / -ltr”)), aby zamienić znaki nowej linii na przyjazne dla HTML znaki BR.

Przykład:

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() przykład:

Funkcja system() jest również używana do wykonywania poleceń powłoki za pośrednictwem PHP.

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

Wynik:

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

Odwiedź https://anto.online po więcej postów o PHP!

O autorach

Każdy członek zespołu redakcyjnego Anto jest ekspertem w dziedzinie chmur obliczeniowych. Anto Online jest dumne z pomagania innym entuzjastom chmury. Daj nam znać, jeśli masz świetny pomysł na następny temat!

Wspieraj sprawę

Wspieraj Anto Online i postaw nam kawę. Z kawą i kodem wszystko jest możliwe.

Zaproponuj mi kawę

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.