Descripción
string
system ( string comando [, int val_retorno])
system() es similar a la versión C de
la función de mismo nombre, dado que ejecuta el
comando dado y muestra el resultado. Si se
entrega una variable como segundo argumento, entonces el
código de status devuelto por el comando ejecutado
será escrito en esta variable.
| Aviso |
Si se va a permitir que
datos provenientes del usuario sean enviados a esta funcion, habria
que utilizar escapeshellarg() o
escapeshellcmd() para asegurarse que el usuario no
intenta engañar al sistema para que ejecute comandos
arbitrarios. |
Nota: Si arrancamos un programa con esta
funcion y queremos dejarlo ejecutandose en segundo plano, hay que
asegurarse que el resultado del mismo es redireccionado a un fichero u
otra salida o PHP se parara hasta que la ejecucion del programa
termine.
La llamada a system() también intenta
volcar automáticamente el búfer de salida del
servidor web después de cada línea de salida, si
PHP está corriendo como un módulo de servidor.
Devuelve la última línea de la salida del comando
en caso de éxito, y FALSE si se presenta algún
fallo.
Si necesita ejecutar un comando y recibir de vuelta todo los
datos del mismo sin interferencias, use la
función passthru().
Ejemplo 1. Ejemplo de system()
<?php echo '<pre>';
// Muestra el resultado completo del comando "ls", y devuelve la // ultima linea de la salida en $ultima_linea. Almacena el valor de // retorno del comando en $retval. $ultima_linea = system('ls', $retval);
// Imprimir informacion adicional echo ' </pre> <hr />Ultima linea de la salida: ' . $ultima_linea . ' <hr />Valor de retorno: ' . $retval; ?>
|
|
Nota: Cuando safe mode esta activado, solamente
se pueden ejecutar los programas que se encuentren en safe_mode_exec_dir. Por
razones practicas, no se permite el uso de .. en el
PATH del programa.
| Aviso |
Con safe mode activado, todas las
palabras que siguan al comando inicial son tratadas como un solo
argumento. Asi, echo y | echo x se interpreta como
echo "y | echo x". |
Vea también exec(),
passthru(), popen(),
escapeshellcmd(),
pcntl_exec() y el operador de comilla
invertida.