PHP é uma linguagem de programação usada para desenvolver aplicações Web interativas ricas . No entanto, você pode querer chamar programas externos ou comandos do sistema a partir de dentro de um programa PHP para adicionar funcionalidade adicional de melhorar a eficiência. Isto pode ser realizado pela exec PHP ( ) ou sistema ( comandos ) , que variam ligeiramente na funcionalidade e sintaxe . Use
O exec () e system () comandos são usados dentro de um programa PHP para executar comandos de sistema ou programas externos e scripts. Isso é importante para ampliar as capacidades da linguagem PHP e fazer a interface com outros aplicativos em execução no servidor . PHP fará uma pausa até que o programa externo termina a execução , a menos que a saída é redirecionada para um arquivo ou outro buffer de saída.
Diferenças
A principal diferença entre o exec ( ) e sistema ( ) comandos é como saída do programa externo é tratado. O comando system () grava automaticamente os resultados do comando executado para o buffer de saída atual. O comando exec ( ) retorna opcionalmente a saída do comando executado como uma variável de matriz adicional.
Sintaxe
O exec () e system () comandos ter um pouco diferente sintaxe opcional , embora ambos possam ser executados com apenas o caminho para o programa externo. Ambos os comandos exigem um comando formatado como uma string, e ter uma variável de retorno opcional formatado como um ponteiro para um int para indicar o status de retorno do comando set executado a 0 quando executado sem erro e qualquer outro valor quando um erro foi encontrado. O comando exec () inclui ainda um parâmetro de saída formatada como um ponteiro para uma variável de matriz , que incluem cada linha de saída do comando executado sem espaços em branco, como o caractere de nova linha .
Segurança
ao executar comandos ou programas externos , é especialmente importante considerar a segurança da operação. Ao usar qualquer entrada fornecida pelo usuário, use o () funções escapeshellarg () ou escapeshellcmd para remover operações potencialmente prejudiciais. Melhores práticas envolvem apenas a execução de uma lista branca conhecida dos comandos , ao invés de apenas remover comandos nocivos conhecidos.