2012-05-31 75 views
59

Es posible ejecutar un comando externo por tres funciones PHP de¿Cuáles son las diferencias entre system(), exec() y shell_exec() en PHP?

system(); 
exec(); 
shell_exec(); 

pero ¿cuáles son sus diferencias? A pesar de sus aplicaciones específicas, en la mayoría de los casos, el puede ser utilizado por igual. Tengo curiosidad por saber cuál es el preferido cuando se pueden usar por igual. Por ejemplo, para descomprimir un archivo o comprimir una carpeta (con el comando tar), ¿cuál es el preferido (probablemente desde el punto de vista del rendimiento)?

ACTUALIZACIÓN: En otra pregunta, me encontré con un muy útil link describir diferentes aspectos de estas funciones. Comparto el enlace aquí, como otros pueden usar para comprender mejor los problemas de seguridad y otros aspectos.

+5

No es por ser insolente, pero ¿qué decir sobre el manual de las respectivas funciones? – GordonM

+2

Además, olvidó passthru() :) – GordonM

+0

@GordonM Leí el manual, pero no entiendo la preferencia para cada función. En muchos casos, pueden ser utilizados por igual. Quiero una vista práctica. – Googlebot

Respuesta

85

exec - Ejecutar un programa externo

system - Ejecutar un programa externo y mostrar la salida

shell_exec - Ejecutar un comando mediante el intérprete y devolver la salida completa como una cadena

por lo que si Don No necesito la salida, me gustaría ir con el ejecutivo.

Más detalles:

+1

Gran respuesta amigo. –

+6

'exec()' devuelve la última línea de salida, por lo que si está llamando a un programa simple que solo emite un solo valor como 'whoami' o' pwd', 'exec()' es perfecto. – alanaktion

Cuestiones relacionadas