Domanda

Attualmente sto sviluppando un paio di plugin per il testo sublime 2 su OS X e vorrei renderli piattaforma trasversale, il che significa che devo scoprire se e dove è installato php.exe.

In questo momento chiamo /usr/bin/php in Python, che ovviamente funziona solo su OS X e Linux:

phppath = '/usr/bin/php'<br>
pluginpath = sublime.packages_path() + '/HtmlTidy/tidy.php'<br>
retval = os.system( '%s "%s"' % ( phppath, scriptpath ) )
.

Ma su Windows, non sembra esserci alcuna definizione del percorso predefinito per php.exe. Più mi sono googlato per questo, le più possibili sono state presentate. Finora penso che dovrei controllare ciascuno dei seguenti percorsi per l'esistenza:

c:\php\php.exe
c:\php5\php.exe
c:\windows\php.exe
c:\program files\php\php.exe
c:\wamp\bin\php\php5\php.exe
c:\xampp\php\php.exe
.

Questa è già una bella collezione, ma quello che sto chiedendo è un elenco completo che copre tutti i possibilities - o un altro modo per capirlo che dovrebbe essere come robusto come controllando ogni possibile percorso.

Quindi se hai installato Php.exe in qualche posto diverso da questi, per favore lascia un commento con il percorso e lo aggiungerò all'elenco sopra.

Inoltre, sembra esserci php.exe e php-cli.exe. Immagino che sarebbe ok loop su ciascun percorso possibile, controlla prima per php-cli.exe, quindi controllare php.exe e prendere la prima partita. È corretto o c'è una pratica migliore?

È stato utile?

Soluzione

If the user has defined added PHP's bin folder to the system PATH then you should just be able to try and execute php -v to check that it's present.

If you want to obtain the full path to the php executable and the target system is Windows 2003 or later (so Vista, and 7) then you could use the WHERE command, ie:

C:\>where php.exe
C:\Program Files (x86)\WAMP\bin\php\php5.3.5\php.exe

Also see possibly related question: Is there an equivalent of 'which' on the Windows command line?.

If you are really desperate to find any file on the user's computer, you could try executing the equivilent of a find - but it's gonna be slooow!

C: && cd \ && dir /s /b php.exe

Altri suggerimenti

From PHP 5.4 and later, you can use the PHP_BINARY constant.

C:\xampp\php\php.exe 

Should work if your xampp is on D: or E: you change accordingly from C:

try

echo PHP_BINDIR;

It works, I tested it on MacOS as with php 5.6

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top