Como executar comandos shell via PHP

Este post discute como executar comandos shell via PHP. Assim, ao invés de inserir manualmente um comando no Linux para pesquisar a estrutura de pastas, você faz isso programmaticamente via PHP. A habilidade de executar comandos shell via PHP é uma característica poderosa e deve ser usada com cuidado. Nem todos os provedores de hospedagem permitirão que você execute comandos shell via PHP.

A função PHP para executar comandos shell é: shell_exec(), exec() ou system().

Estas funções são muito similares, mas têm pequenas diferenças:

  • shell_exec() retorna a saída completa como uma string. A string pode ser NULL quando um erro ocorre ou se o comando não produz saída.
  • exec() retorna a última linha do comando executado como uma string. NOTA: Utilize exec() quando necessitar de acesso à saída do programa. shell_exec() não fornece a informação do código de saída do programa.
  • system() é semelhante a shell_exec() mas mostra a saída directamente (sem utilizar echo() ou print()).

shell_exec() & exec() example:

ambas estas funções da shell funcionam da mesma forma. Note as diferenças 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 ….

A resposta contém \n quebras de linha. Use str_replace(“\n”, “<BR>”, shell_exec(“ls / -ltr”)) para substituir novos caracteres de linha por BRs HTML amigáveis.

Exemplo:

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

system() example:

A função system() também é usada para executar comandos shell via 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 mais posts sobre PHP!

Sobre os Autores

Cada membro da equipe editorial de Anto é um especialista da Nuvem por direito próprio. Anto Online tem muito orgulho em ajudar os outros entusiastas da Nuvem. Deixe-nos saber se você tem uma excelente idéia para o próximo tópico!

Suporte a Causa

Suporte Anto Online e compre-nos um café. Tudo é possível com café e código.

Comprar-me um café

Deixe uma resposta

O seu endereço de email não será publicado.