Como posso executar um script php da CLI sem prefixar “php” a ele? [fechadas]

2

Estou tentando criar um script que seja executado a partir do servidor da Web que executará um arquivo php via exec() , mas quero que isso seja feito sem incluir o php nele. Isso pode ser feito?

Usando o Windows 2008 e o XAMPP

    
por Rob 05.10.2011 / 00:06

2 respostas

5

Não, um arquivo php não pode ser diretamente executável no Windows. Você precisaria de uma solução alternativa como agrupar o comando php filename.php em um arquivo em lotes.

    
por 05.10.2011 / 02:24
1

Isso pode ser feito no Windows 7 - não sei se a mesma idéia se aplica ao Windows 2008 - no entanto, os efeitos dessa abordagem podem superar os benefícios.

Essencialmente, tudo que você precisa fazer é tornar php-cli.exe o programa padrão para abrir arquivos .php.

Eu fiz isso de duas maneiras, não tenho certeza se as duas formas são necessárias.

Em primeiro lugar, faça php-cli.exe (ou php.exe, suponho) o programa padrão para abrir arquivos .php.

No Windows, isso equivale a: clique com o botão direito do mouse em um arquivo .php, selecione 'Abrir com ...', procure e selecione o executável php-cli.exe e 'definir como padrão'.

Acredito que, no Windows 2008, essa funcionalidade pode ser acessada por meio do Painel de controle > Programas padrão > Associar um tipo de arquivo ou protocolo a um programa

Uma vez que o executável do php-cli.exe esteja configurado como o aplicativo padrão para arquivos .php, você deve ter alcançado seu objetivo, com alguns efeitos colaterais.

Neste ponto, se você executar scriptname.php no prompt de comando, ele será executado pelo php-cli.exe e a saída mostrada abaixo do prompt - que pode ser o que você deseja; no entanto, se você clicar duas vezes no arquivo, ele também será executado pelo php-cli.exe (em vez do seu editor preferido) - que provavelmente é algo que você não deseja.

No entanto, assoc .php (pelo menos no meu caso), retornou o tipo de arquivo como correspondente ao editor que utilizo (e verificar esse tipo de arquivo com ftype deu o caminho para o mesmo editor).

Para corrigir isso, execute algo semelhante ao seguinte (como administrador):

ASSOC .php=PHPScript && FTYPE PHPScript="C:\Program Files (x86)\Xampp\php\php.exe" %1 %* 

Depois disso, acessando meu arquivo PHP de teste no navegador, executei o segundo script de teste (sem usar o prefixo php) e exibi o resultado.

Por questões de interesse, meus scripts de teste foram: test2.php (executado no navegador):

<?php
echo exec('test1.php');
?>

test1.php (na mesma pasta):

<?php
echo date('r');
?>

(testado no Windows 7 com o XAMPP 1.7.7 / PHP 5.3.8)

    
por 05.10.2011 / 07:02