(PHP 4, PHP 5)
system — Ejecutar un programa externo y mostrar su salida
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.
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.
Si necesita ejecutar un comando y recibir de vuelta todo los datos del mismo sin interferencias, use la función passthru().
El comando que será ejecutado.
Si el argumento val_retorno se encuentra presente, entonces el status devuelto por el comando ejecutado será almacenado en esta variable.
Devuelve la última línea de la salida del comando en caso de tener éxito, y FALSE si ocurre un error.
Example#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;
?>
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.
Note: 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.
Note: 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.
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".