Como executar o código PHP a partir da linha de comando?
163
Eu gostaria de executar uma única instrução php como if(function_exists("my_func")) echo 'function exists'; diretamente com a linha de comando sem precisar usar um arquivo php separado.
fazer function_exists () sem usar outros arquivos que contenham função definida pelo usuário não será muito bom, exceto para testar a versão do PHP, que você pode descobrir de outras maneiras. Qual função você deseja testar?
Matt Gibson
Eu estou olhando para testar esta função: sg_load ()
Steve
2
Parece que o que você realmente deseja é descobrir se a extensão php sourceguardian está ativada?
Matt Gibson
2
então phpinfo () deve lhe dizer.
JPIC
Respostas:
256
Se você for fazer PHP na linha de comando, recomendo instalar o phpsh, um shell PHP decente . É muito mais divertido.
De qualquer forma, o comando php oferece duas opções para executar o código na linha de comando :
-r <code>Run PHP <code> without using script tags <?..?>-R <code>Run PHP <code>for every input line
Se não funcionar na sua caixa como na minha caixa * es * ( testada no Ubuntu e Arch), provavelmente a sua configuração do PHP está confusa ou com problemas . Se você executar este comando:
php -i | grep 'API'
Você deve ver:
Server API =>CommandLineInterface
Caso contrário , isso significa que talvez outro comando forneça a CLI SAPI . Experimente o php-cli, talvez seja um pacote ou um comando disponível no seu sistema operacional.
Se você perceber que seu comando php usa a SAPI (API de servidor) da CLI (Command Line Interface), execute php -h | grep codepara descobrir qual opção maluca - como isso não mudou durante o ano - permite executar o código em sua versão / configuração.
Mais alguns exemplos, apenas para garantir que funcione nas minhas caixas:
Além disso, observe que é possível que uma extensão seja carregada na CLI e não na CGI ou Apache SAPI. É provável que vários SAPIs PHP usem arquivos php.ini diferentes , por exemplo, /etc/php/cli/php.inivs /etc/php/cgi/php.inivs /etc/php/apache/php.iniem uma caixa do Gentoo. Descubra com qual arquivo ini é usado php -i | grep ini.
Ou sou cego ou esta resposta não tem nada a ver com a pergunta. Como essa resposta deve responder à pergunta " Como executar o código PHP diretamente da linha de comando, sem salvar o código PHP no .phparquivo? "?
Trejder
15
@trejder Por um momento, me perguntei se havia respondido à pergunta errada, mas depois examinei o histórico de edição e os comentários. Isso responde ao que o OP parecia realmente precisar: descobrir se uma extensão PHP específica foi carregada. A questão já foi reformulada, por isso não se encaixa tão bem agora.
Respostas:
Se você for fazer PHP na linha de comando, recomendo instalar o phpsh, um shell PHP decente . É muito mais divertido.
De qualquer forma, o comando php oferece duas opções para executar o código na linha de comando :
Você pode usar a opção -r do php :
O comando PHP acima acima deve gerar
no
e retornar0
como você pode ver:Outra opção engraçada é php -a :
É meio coxo comparado ao phpsh , mas se você não quiser instalar o incrível shell interativo para php criado pelo facebook para obter a conclusão da guia, o histórico etc. , use -a como tal :
Se não funcionar na sua caixa como na minha caixa * es * ( testada no Ubuntu e Arch), provavelmente a sua configuração do PHP está confusa ou com problemas . Se você executar este comando:
Você deve ver:
Caso contrário , isso significa que talvez outro comando forneça a CLI SAPI . Experimente o php-cli, talvez seja um pacote ou um comando disponível no seu sistema operacional.
Se você perceber que seu comando php usa a SAPI (API de servidor) da CLI (Command Line Interface), execute
php -h | grep code
para descobrir qual opção maluca - como isso não mudou durante o ano - permite executar o código em sua versão / configuração.Mais alguns exemplos, apenas para garantir que funcione nas minhas caixas:
Além disso, observe que é possível que uma extensão seja carregada na CLI e não na CGI ou Apache SAPI. É provável que vários SAPIs PHP usem arquivos php.ini diferentes , por exemplo,
/etc/php/cli/php.ini
vs/etc/php/cgi/php.ini
vs/etc/php/apache/php.ini
em uma caixa do Gentoo. Descubra com qual arquivo ini é usadophp -i | grep ini
.fonte
Na linha de comando:
Se estiver lá, você receberá algum texto. Caso contrário, você não receberá nada.
fonte
.php
arquivo? "?Você pode usar :
A tag curta " <? = " Também pode ser útil:
A tag de fechamento "?>" É opcional, mas não esqueça a final ";" !
fonte
php -r
você não precisa se preocupar em abrir tags PHP.Usando PHP na linha de comando
use "em vez de ' no windows ao usar a versão cli com -r
- correto
-- incorreta
fonte