Az exec() lefuttatja a command-ban megadott parancsot, amely így nem ír ki semmit, csak egyszerűen visszaadja a legutolsó sort, amit a parancs generált. A passthru() függvény használható arra, hogy a parancs eredménye minden adatfeldolgozás nélkül kiírása kerüljön.
Az output paraméter megadásával a program kimenetét a PHP soronként a megadott tömb végéhez fűzi. A sorvége jelek, mint a \n például, nem kerülnek bele a tömbbe. Ha az átadott tömb már tartalmaz néhány elemet, akkor az exec() a benne lévő adatok után fűzi a sorokat. Ha nincs szükség a régi elemekre, akkor az unset() függvénnyel lehet törölni az egész tömböt, az exec() meghívása előtt.
Az output paraméterrel együtt a return_var a futtatott parancs visszatérési állapotát tárolja el.
Figyelem |
Ha felhasználótól származó adatot kell átadni ennek a függvénynek, akkor előtte használd az escapeshellcmd() függvényt, annak biztosítására, hogy nem tudnak a felhasználók tetszőleges parancsot futtatni. |
Megjegyzés: Ezzel a függvénnyel elindított de háttérben futó program kimenetét mindenképpen fájlba vagy valamilyen más kimeneti csatornába kell átirányítani. Ellenkező esetben a PHP várakozni fog addig, amíg a program futása be nem fejeződik.
Megjegyzés: Bekapcsolt safe_mode mellett csakis a safe_mode_exec_dir által megadott könyvtárban található állományok futtathatóak. Mindemellett a futtatható állomány megadásának útvonalában nem szerepelhet a .. elem.
Figyelem |
Bekapcsolt safe_mode mellett minden, ami a nyitó parancs után következik, egy darab argumentumként lesz kezelve. Az echo y | echo x utasítás ez esetben tehát ilyenné alakul: echo "y | echo x". |
Lásd még: system(), passthru(), popen(), escapeshellcmd(), pcntl_exec() és a végrehajtó operátor!