PHP kézikönyv
Előző |  | Következő

# exec

(PHP 3, PHP 4, PHP 5)

exec -- Külső programot futtat

## Leírás

string exec ( string command [, array &output [, int &return_var]] )

Az exec() lefuttatja a command-ban megadott parancsot.

## Paraméterek

command

  A végrehajtandó parancs.

output

  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.

return_var

  Az output paraméterrel együtt a return_var a futtatott parancs visszatérési állapotát tárolja el.

## Visszatérési értékek

A kimenet utolsó sora. Ha úgy szeretnél végrehajtani egy parancsot, hogy az egész kimenetét változatlanul megkapd, használd a passthru() függvényt.

Hogy megkapd a parancs kimenetét, állítsd be és használd az output paramétert.

## Példák

Példa 1. Egy exec() példa
`<?php // az aktuális php/http processzt birtokló felhasználó nevét írja ki // (feltéve, ha olyan rendszeren vagyunk, amelyen a "whoami" elérhető) echo exec('whoami'); ?>`

## Megjegyzések

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()
escapeshellcmd()
pcntl_exec()
system()
végrehajtó operátor

Előző | Tartalom | Következő
escapeshellcmd | Fel | passthru