Estou chamando um script PHP sempre que uma página da web é carregada. No entanto, há um parâmetro que o script PHP precisa executar (o qual eu normalmente passo pela linha de comando quando estou testando o script).
Como posso passar esse argumento toda vez que o script é executado quando a página é carregada?
php
parameters
usuario
fonte
fonte
Respostas:
Presumivelmente, você está passando os argumentos na linha de comando da seguinte maneira:
... e, em seguida, acessando-os no script assim:
O que você precisa fazer ao passar argumentos por HTTP (acessando o script pela Web) é usar a cadeia de consulta e acessá-los através da superglobal $ _GET:
Vá para http://seudominio.com/path/to/script.php?argument1=arg1&argument2=arg2
... e acesse:
Se você deseja que o script seja executado, independentemente de onde você o chama (linha de comando ou do navegador), é recomendável algo como o seguinte:
EDIT: como apontado por Cthulhu nos comentários, a maneira mais direta de testar em qual ambiente você está executando é usar a constante PHP_SAPI . Atualizei o código de acordo:
fonte
empty($_GET)
.$_GET
é um valor predefinido, por isso tenho certeza de que está sempre definido, mas vazio se não houver parâmetros GET definidos.empty()
retornafalse
para cadeias e matrizes vazias.$_GET
na verdade, não está definido se o script for chamado em um contexto de linha de comando.empty()
faria com que ele procurasse argumentos de linha de comando se o script fosse acessado da Web sem uma string de consulta, lançando mais avisos.PHP_SAPI === 'cli'
..htaccess
é um arquivo Apache - o Apache processa solicitações recebidas com as diretivas.htaccess
incluídas e, em seguida, chama o PHP para criar a resposta à solicitação. Portanto, se você estiver na linha de comando,.htaccess
será completamente ignorado. Se você está acessando um script pela Web e deseja adicionar novos argumentos da sequência de consultas após receber a solicitação, isso normalmente é feitomod_rewrite
. Se isso não responder suficientemente à sua pergunta, sugiro que você publique uma nova pergunta.Se você deseja que todo o script seja executado, independentemente de onde você o chama (linha de comando ou do navegador), você deseja algo como o seguinte:
Para chamar da linha de comando
chmod 755 /var/www/webroot/index.php
e usarPara ligar a partir do navegador, use
fonte