Ez a bejegyzés a shell parancsok PHP-n keresztül történő végrehajtását tárgyalja. Így ahelyett, hogy kézzel adnánk be egy parancsot a Linuxban a mappastruktúra keresésére, ezt programozottan, PHP-n keresztül végezzük el. A PHP-n keresztül történő shell-parancsok futtatásának képessége nagy teljesítményű funkció, és óvatosan kell használni. Nem minden tárhelyszolgáltató teszi lehetővé a shell parancsok PHP-n keresztüli végrehajtását.
A shell parancs végrehajtásához használt PHP függvények: shell_exec(), exec() vagy system().
Ezek a függvények nagyon hasonlóak, de vannak kisebb különbségek:
- a shell_exec() a teljes kimenetet stringként adja vissza. A string lehet NULL, ha hiba lép fel, vagy ha a parancs nem eredményez kimenetet.
- exec() a végrehajtott parancs utolsó sorát adja vissza stringként. MEGJEGYZÉS: Akkor használja az exec()-t, ha a program kilépéséhez való hozzáférésre van szüksége. a shell_exec() nem ad információt a program kilépési kódjáról.
- system() hasonló a shell_exec()-hez, de a kimenetet közvetlenül (az echo() vagy print() használata nélkül) jeleníti meg.
shell_exec() & exec() példa:
Mindkét shell függvény ugyanúgy működik. Vegyük észre a korábban említett különbségeket.
<?echo shell_exec("ls / -ltr");?>
Eredmény:
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 ….
A válasz \n sortörést tartalmaz. Használja a str_replace(“\n”, “<BR>”, shell_exec(“ls / -ltr”)) parancsot az újsor karakterek HTML-barát BR karakterekkel való helyettesítéséhez.
Példa:
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() példa:
A system() függvényt a PHP-n keresztül shell parancsok végrehajtására is használjuk.
<?system("ls / -ltr");?>
Eredmény:
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 ….
Látogasson el https://anto.online további PHP-ről szóló bejegyzésekért!
A szerzőkről
Az Anto szerkesztőségének minden tagja a maga nemében Cloud-szakértő. Az Anto Online nagy büszkeséggel segíti a Cloud-rajongó kollégákat. Szóljon nekünk, ha kiváló ötlete van a következő témához!
Támogassa az ügyet
Támogassa az Anto Online-t, és vegyen nekünk egy kávét. Kávéval és kóddal bármi lehetséges.
Vegyél nekem egy kávét