PHP es un lenguaje de programación utilizado para desarrollar ricas aplicaciones Web interactivas . Sin embargo , es posible que desee llamar a programas externos o comandos del sistema desde un programa PHP para añadir funcionalidad adicional de mejorar la eficiencia. Esto puede ser realizado por el PHP exec ( ) o comandos del sistema ( ) , que varían ligeramente en la funcionalidad y la sintaxis . Utilice
exec ( ) y system () comandos se usan dentro de un programa PHP para ejecutar comandos del sistema o programas y scripts externos . Esto es importante para ampliar las capacidades del lenguaje PHP y para la interfaz con otras aplicaciones que se ejecutan en el servidor . PHP se detendrá hasta que el programa externo finaliza su ejecución a menos que la salida se redirige a un archivo u otro búfer de salida.
Diferencias
La principal diferencia entre el exec ( ) y el sistema de () comandos es cómo se maneja la salida del programa externo. El comando system () escribe automáticamente los resultados del comando ejecutado en el búfer de salida actual. El comando exec ( ) devuelve opcionalmente la salida del comando ejecutado como una variable de matriz adicional.
Sintaxis
comandos del sistema () exec ( ) y tienen una sintaxis ligeramente diferente opcional , aunque ambos pueden ser ejecutados con sólo el camino hacia el programa externo . Ambos comandos requieren un comando de formato de cadena , y tienen una variable de retorno opcional formateada como un puntero a un entero para indicar el estado de salida del comando ejecutado -set a 0 cuando se ejecuta sin error y cualquier otro valor cuando se ha detectado un error. El comando exec ( ) incluye , además, un parámetro de salida formateada como un puntero a una variable de matriz , que incluyen cada línea de salida del comando ejecutado sin el espacio en blanco , como el carácter de nueva línea .
Seguridad
al ejecutar comandos o programas externos , es especialmente importante tener en cuenta la seguridad de la operación. Cuando use cualquier entrada proporcionada por el usuario , utilice la función escapeshellcmd () escapeshellarg () , o eliminar las operaciones potencialmente dañinos. Las mejores prácticas implican sólo la ejecución de una lista blanca conocida de comandos , y no sólo la eliminación de los comandos dañinos conocidos.