Execute o comando shell no PHP usando o executivo

Execute o comando shell no PHP usando o executivo

O script PHP é usado principalmente para o desenvolvimento de aplicativos da Web, mas pode ser usado para outros fins também. O PHP possui algumas funções internas para executar comandos relacionados ao sistema. exec () é um deles. É usado para executar comandos de shell ou qualquer programa do script php. Como essa função pode ser usada no PHP é mostrada neste tutorial.

Sintaxe:

String EXEC (String $ Command [, Array & $ output [, Int & $ Return_var]]))

Esta função pode levar três argumentos. O primeiro argumento é obrigatório que assumirá o comando do sistema. Os outros dois argumentos são opcionais. O segundo argumento é usado para armazenar a saída do comando em uma matriz. O terceiro argumento desta função é usado para armazenar o status de retorno do comando executado. Esta função retorna a última linha da saída de comando executada.

Exemplo 1: Uso da função EXEC () sem argumentos opcionais

O uso básico da função EXEC () mostrou neste tutorial. Crie um arquivo php com o seguinte script para saber como a função EXEC () retorna a saída de comando. 'PWD'O comando usou no comando primeiro exec () do script que retorna uma linha de saída. 'LS -LA'O comando foi usado no comando segundo exec () que pode retornar várias linhas de saída. Se algum comando retornar várias linhas, a saída mostrará a última linha como a saída.

// armazenar a saída do comando executado
$ output1 = EXEC ('PWD');
// Imprima o valor de retorno
eco $ output1;
eco "
";
// armazenar a última linha do comando executado
$ output2 = EXEC ('LS -LA');
// Imprima o valor de retorno
eco $ output2;
?>

Saída:

A saída a seguir será exibida após a execução do script acima do servidor. 'PWDO comando retorna o diretório de trabalho atual como saída que é mostrada na primeira saída. 'LS -LAO comando retorna as informações de detalhes da lista de diretórios e a segunda saída mostra a última linha da saída do comando.

Exemplo 2: Imprima todos os valores do comando executado

No exemplo anterior, nenhum argumento opcional é usado na função EXEC (). O exemplo a seguir mostra o uso de argumentos opcionais da função EXEC (). Crie um arquivo php com o seguinte script. Dois argumentos opcionais do EXEC () são usados ​​neste script. 'ls -l'O comando é usado no primeiro argumento que retorna a lista de diretórios. $ saída A variável é usada aqui para armazenar a saída do comando em uma matriz. $ status A variável é usada para armazenar o valor do status de retorno do comando executado. A saída do comando será impressa como uma matriz e cada valor da matriz de saída será impresso usando o loop 'para'.

// armazenar a saída do comando executado em uma matriz
EXEC ('LS -L', $ output, $ status);
// Imprima todos os valores de retorno do comando executado como matriz
print_r ($ output);
eco "
";
// imprima a saída do comando executado em cada linha
foreach ($ saída como $ valor)

eco $ valor."
";

// Imprima o status de retorno do comando executado
eco $ status;
?>

Saída:

A saída a seguir será exibida após a execução do script acima do servidor. A saída mostra a matriz que contém a saída do comando, 'ls -l' e cada valor da matriz em cada linha.

Exemplo 3: Imprima todos os arquivos PHP do diretório atual

O exemplo a seguir mostra a lista de todos os arquivos PHP do diretório atual usando a função EXEC (). Aqui o 'LS -L *.php'O comando é usado aqui para descobrir a lista de todos os arquivos PHP do diretório atual.

 A tag é usada no script para imprimir o conteúdo da matriz com o formato estruturado.

// armazenar a saída do comando executado em uma matriz
exec ('ls -l *.php ', $ output);
// Imprima a saída do comando executado
eco "
";
print_r ($ output);
eco "
";
?>

Saída:

A saída a seguir será exibida após a execução do script acima do servidor.

Exemplo-4: Execute um script Bash

Como qualquer script bash pode ser executado usando a função EXEC () mostrou neste exemplo. Crie um arquivo bash chamado laço.sh com o script a seguir que imprimirá todos os números pares de 1 a 20.

laço.sh

#!/BIN/BASH

#Inialize o contador

contador = 1
#Itere o loop até que o valor de $ contador seja menor ou igual a 20

enquanto [$ contador -le 20]
fazer
#Print os números uniformes

Se [[$ Counter%2 -eq 0]]
então
#Print $ contador sem newline

eco "$ contador"
fi
#Ncrement $ contador por 1

((contador ++))
feito

Crie um arquivo php com o seguinte script para executar o script bash. 'Bash Loop.sh'é usado como o primeiro argumento da função EXEC () que executará o laço.sh Arquivo de script. 'para cada'O loop é usado para imprimir cada valor do $ saída com espaço.

// Execute o script Bash
exec ('bash loop.sh ', $ output);
eco "Todos os números uniformes dentro de 1 a 20 são:
";
// Imprima o nosso uso usando loop
foreach ($ saída como $ valor)

eco $ valor."";

?>

Saída:

A saída a seguir será exibida após a execução do script acima do servidor. A saída mostra todos os números pares dentro de 1 a 20.

Exemplo 5: Run 'Dir' Comando usando a função EXEC ()

O comando 'dir' funciona como o comando 'ls'. O exemplo a seguir mostra como o comando 'dir' pode ser executado usando um script php. Crie um arquivo php com o seguinte script que armazena a saída do comando 'dir' na matriz denominada $ saída e o valor do status na variável nomeada $ retornar. função var_dump () é usado aqui para imprimir a estrutura do $ saída Array com as informações do tipo de dados.

// Run 'Dir' Command
EXEC ("Dir", $ out, $ Return);
// Imprima o valor do status de retorno
eco "O valor de retorno do comando 'dir' é $ return \ n";
eco "
";
// Imprima a saída de comando
var_dump ($ output);
eco "
";
?>

Saída:

A saída a seguir será exibida após a execução do script acima do servidor.

Conclusão:

Diferentes usos da função EXEC () foram explicados neste tutorial para ajudar os codificadores PHP a saber a maneira de executar o comando Shell usando o script PHP. Algumas outras funções também existem no PHP para realizar o mesmo tipo de tarefa.