Embora o PHP seja especialmente criado para atender requisições Web, ele também pode ser executado em um terminal de comandos (prompt), através do php cli. Pelo terminal, podemos executá-lo de diferentes formas e, neste post, veremos quais são elas.
Executando um script pelo terminal
Para executar um script PHP pelo terminal, basta executar o comando "php" seguido do caminho para o arquivo a ser executado. Por exemplo:
$ php teste.php
Executando um código PHP pelo terminal
Para executar um código PHP pelo terminal, basta executar o comando "php" passando o parâmetro -r, seguido do comando a ser executado. Note que o comando precisa estar delimitado por aspas simples ou duplas. Não é permitido usar os delimitadores de código PHP para delimitar os comandos (como o <?php e ?>), embora você possa encerrá-lo e abrí-lo novamente. Veja um exemplo:
$ php -r 'var_dump(substr("abcde", 2));'
Isso pode ser útil para realizar pequenos testes rápidos pelo terminal, sem a necessidade de criar um script só para ver o resultado.
Um inconveniente é que, se você usa aspas duplas, e pretende executar algum comando que envolva variáveis, você precisa escapar o símbolo "$". Além disso, se pretende usar as mesmas aspas usadas para delimitar o comando, também precisa escapá-la, conforme o exemplo:
$ php -r "\$a = 1; echo \$a . \"2\";"
Observe que podemos executar mais de um comando. Basta delimitá-los pelo ";".
Executando um código PHP pelo terminal interativo
Para executar uma sequência de códigos PHP pelo terminal, de forma interativa, basta executar o comando "php" passando o parâmetro -a. Por exemplo:
$ php -a
Ao executar este comando, será mostrado um prompt de PHP, conforme exemplo abaixo:
Interactive mode enabled php >
Neste prompt de PHP, você pode executar comandos do PHP e o resultado é mostrado assim que um comando é completamente interpretado. Neste caso, podemos criar variáveis, executar loops e imprimir resultados com mais facilidade que a forma anterior (com o -r). Isso porque não precisamos nos preocupar com escapar as aspas e as variáveis.
Veja um exemplo de um loop executado no prompt interativo:
php > for ($i = 0; $i < 10; $i++) { php { echo $i . "\n"; php { } 0 1 2 3 4 5 6 7 8 9 php > quit
Observe que após adicionarmos a primeira linha, abrimos uma chave. Com isso, o PHP muda o prompt para "php {". Assim que fechamos as chaves, pela terceira linha inserida, o PHP executa todo o bloco definido.
Para encerrar o modo interativo, basta executar o comando "exit" ou "quit". Note que ele é diferente de executar o comando do PHP "exit(0);". Neste caso, só estará sendo definido o valor retornado para o shell.
4 comentários
No Windows funciona um pouco diferente. Para fazer funcionar de modo similar ao artigo, vc precisa colocar as tags de abertura e fechamento normalmente e após concluir o comando, dar Ctrl+Z, para que o Windows reconheça o fim do arquivo. Um exemplo:
^Z (Aqui é o Ctrl+Z)
Assim ele executa o echo. Mais informações acesse aqui http://php.net/manual/pt_BR/features.commandline.interactive.php.
OBS.: O comentário literalmente comeu minhas tags PHP, então acesse o link e dê um find em 'spencer at aninternetpresence dot net' que tem o exemplo.
Massa Rubéns, vi algo num livro, mas o post focou, muito bom...
Olá Diego, obrigado pelo comentário.
Na verdade, acho que essa "diferença" que você relatou em ambientes Windows na verdade é um bug ainda não resolvido. Veja:
https://bugs.php.net/bug.php?id=51695
Também presenciei este comportamento no Linux, quando o PHP não é compilado com a opção "--with-readline".
Postar um comentário
Nota: fique a vontade para expressar o que achou deste artigo ou do blog.
Dica: para acompanhar as respostas, acesse com uma conta do Google e marque a opção "Notifique-me".
Atenção: o blogger não permite inclusão de tags nos comentários, por isso, use algum site externo para postar seu código com dúvidas e deixe o link aqui. Exemplo: pastebin.com