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