Explique la diferencia entre las funciones shell_exec() y exec()

En este artículo, aprenderemos sobre las funciones shell_exec() y exec() en PHP. Como sabemos, para ejecutar un comando en un sistema, necesitamos el shell de los respectivos sistemas operativos, pero si necesitamos ejecutar el mismo comando con la ayuda de un lenguaje de programación como PHP, entonces usamos estas dos funciones. Usamos cualquiera de las dos funciones pero difieren en términos de salida, darán después de su ejecución exitosa. Consulte PHP | función shell_exec() frente a exec() .

Función shell_exec(): La función shell_exec() es una función incorporada en PHP que se utiliza para ejecutar los comandos a través de shell y devolver la salida completa como una string. El shell_exec es un alias para el operador de acento grave, para aquellos acostumbrados a *nix. Si el comando falla, devuelve NULL y los valores no son confiables para la verificación de errores. Esta función se desactiva cuando PHP se ejecuta en modo seguro.

Sintaxis:

string shell_exec( $cmd )

Parámetro: la función shell_exec() pasa solo un único argumento ($cmd) ya que contiene el comando que se ejecutará.

Valor devuelto: devuelve el comando ejecutado o NULL si se produce un error.

Ejemplo 1:

PHP

<?php
  
// Command 
$command = "DATE";
  
// Passing the command to the function
$cmd_output = shell_exec($command);
  
echo $cmd_output;
?>

Producción

The current date is 08-07-2021. Enter the new date: (dd-mm-yy)

Ejemplo 2:

PHP

<?php
  
// Command 
$command = "TIME";
  
// Passing the command to the function
$cmd_output = shell_exec($command);
  
echo $cmd_output;
?>

Producción:

The current time is: 21:05:01.82. Enter the new time: 

Función exec(): La función exec() es una función incorporada en PHP que se utiliza para ejecutar un programa externo y devuelve la última línea de la salida. También devuelve NULL si ningún comando se ejecuta correctamente. Difiere en términos de la salida que da a la función wrt shell_exec(). Ejecuta el comando y brinda toda la salida de ese comando en forma de array y también brinda información adicional que podemos usar para verificar si el comando se ejecutó con éxito o no.

Sintaxis:

string exec( $command, $output, $return_var )

Parámetros: Esta función aceptará tres parámetros:

  • $comando: se utiliza para contener el comando que se va a ejecutar.
  • $salida: se usa para especificar la array que se llenará con cada línea de salida del comando.
  • $return_var: este parámetro está presente junto con el argumento de salida, luego devuelve el estado del comando ejecutado que se escribirá en esta variable.

Valor devuelto: Devuelve el comando ejecutado.

Ejemplo 1:

PHP

<?php
  
// Command to be executed in the shell
$command = "DATE";
  
// Calling exec function 
exec($command, $output_array, $cmd_status);
  
echo "Command status - ".$cmd_status." <br><br>";
echo var_dump($output_array)
  
?>

Producción:

Command status - 1

array(2) { [0]=> string(31) "The current date is: 08-07-2021" 
           [1]=> string(30) "Enter the new date: (dd-mm-yy)" } 

Ejemplo 2:

PHP

<?php
  
// Command to be executed in the shell
$command = "TIME";
  
// Calling exec function 
exec($command, $output_array, $cmd_status);
  
echo "Command status - ".$cmd_status." <br><br>";
echo var_dump($output_array)
  
?>

Producción:

Command status - 1

array(2) { [0]=> string(32) "The current time is: 21:38:09.81" 
           [1]=> string(19) "Enter the new time:" }

Diferencia entre la función shell_exec() y exec():

 

shell_exec()

ejecutivo()

1.

La función shell_exec() es una función incorporada en PHP que se usa para ejecutar los comandos a través de shell y devolver la salida completa como una string.

La función exec() es una función incorporada en PHP que se usa para ejecutar un programa externo y devuelve la última línea de la salida. También devuelve NULL si ningún comando se ejecuta correctamente.

2.

La función shell_exec() proporciona una salida completa como una string.

La función exec() puede proporcionar todos los resultados en forma de una array especificada como segundo parámetro.

3.

La función shell_exec() puede devolver un valor nulo en ambos casos cuando se produce un error o el programa no genera ningún resultado.

La función exec() puede devolver un valor nulo solo en el caso de que ningún comando se ejecute correctamente. 

Publicación traducida automáticamente

Artículo escrito por namankumar2592 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *