Cómo ejecutar comandos de shell a través de PHP

Este post discute cómo ejecutar comandos de shell a través de PHP. Así, en lugar de introducir manualmente un comando en Linux para buscar en la estructura de carpetas, se hace esto de forma programada a través de PHP. La capacidad de ejecutar comandos de shell a través de PHP es una característica poderosa y debe ser utilizada con cuidado. No todos los proveedores de alojamiento le permitirán ejecutar comandos shell a través de PHP.

La función de PHP para ejecutar comandos shell es: shell_exec(), exec() o system().

Estas funciones son muy similares, pero tienen ligeras diferencias:

  • shell_exec() devuelve la salida completa como una cadena. La cadena puede ser NULL cuando se produce un error o si el comando no produce ninguna salida.
  • exec() devuelve la última línea del comando ejecutado como una cadena. NOTA: Utilice exec() cuando necesite acceder a la salida del programa. shell_exec() no proporciona la información del código de salida del programa.
  • system() es similar a shell_exec() pero muestra la salida directamente (sin utilizar echo() o print()).

shell_exec() & exec() ejemplo:

Ambas funciones del shell trabajan de la misma manera. Observe las diferencias mencionadas anteriormente.

<?echo shell_exec("ls / -ltr");?>

Resultado:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

La respuesta contiene \N saltos de línea. Utilice str_replace(«\n», «<BR>», shell_exec(«ls / -ltr»)) para sustituir los caracteres de nueva línea por BRs amigables con HTML.

Ejemplo:

total 2097248drwxr-xr-x 2 root root 4096 Apr 26 19:07 optdrwxr-xr-x 2 root root 4096 Apr 26 19:07 mediadrwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64

Ejemplo de system():

La función system() también se utiliza para ejecutar comandos de shell a través de PHP.

<?system("ls / -ltr");?>

Resultado:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

¡Visita https://anto.online para más posts sobre PHP!

Acerca de los autores

Cada miembro del equipo editorial de Anto es un experto en la Nube por derecho propio. Anto Online se enorgullece de ayudar a los compañeros entusiastas de la Nube. Si tienes una idea excelente para el próximo tema, dínoslo

Apoya la causa

Apoya a Anto Online e invítanos a un café. Todo es posible con café y código.

Compra un café

Deja una respuesta

Tu dirección de correo electrónico no será publicada.