[Dicas-L] PHP em linha de comando - passando parametros
PHP em linha de comando - passando parâmetros
Colaboração: David F A B Fante
Eu estou desenvolvendo uma solução de gerenciamento de contas de hospedagens e revendas, boa parte já está pronta, mas tenho muito a fazer ainda. Uma das necessidades que tive logo de cara, é criar um script PHP que fosse executado em linha de comando, pois ele seria responsável por registrar mensalmente um novo débito e enviar e-mails de cobrança. Então eu configurei para rodar via CRON. Devido a uma medida de segurança eu queria que ele só rodasse se fosse validada uma variável. Este foi o meu problema.
Após ler e reler o manual on-line do PHP eu encontrei uma informação bem útil. Existe uma forma de informar e resgatar parâmetros em linha de comando. É retornado em forma de string. Essa é a parte chata mas vamos lá. Mãos a obra!
Como passar os parâmetros
# php teste nome=SHZ idade=7
Veja que diferentemente do modo tradicional, os parâmetros não começam com <b>?</b> no começo e < b>&</b> entre os parâmetros. Usamos apenas espaço.
Como recuperar os valores dos parâmetros
echo "Olá ".$nome.", você tem ".$idade." anos de existência!";
O valor $argc é a variável que retorna a quantidade de argumentos enviados pela linha de comando. É interessante dizer que o nome do arquivo também conta como um argumento. $argv é a array que contem os valores, agora precisamos criar uma variável com cada valor, pois em uma linha assim:
# php teste.php nome=SHZ
A variável $argv[1] terá o valor de nome=SHZ. Ao usar a função parse_str poderemos acessar o valor com o nome do argumento, ou seja: $nome terá o valor de SHZ, e foi o que fizemos, com nome e idade.