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().
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.