I'm currently developing a couple of plugins for Sublime Text 2 on OS X and I would like to make them cross platform, meaning I have to find out if and where
php.exe está instalado.
Right now I call
/usr/bin/php in Python, which obviously works only on OS X and Linux:
phppath = '/usr/bin/php'<br> pluginpath = sublime.packages_path() + '/HtmlTidy/tidy.php'<br> retval = os.system( '%s "%s"' % ( phppath, scriptpath ) )
But on Windows, there seems to be no definitive default path for php.exe. The more I googled for it, the more possibilities showed up. So far I think I would have to check each of the following paths for existence:
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
That's already quite a collection, but what I'm asking for is either a completar list covering all possibilities - or another way to figure it out that should be as robust as checking each possible path.
So if you have php.exe installed in some place other than these, please leave a comment with your path and I will add it to the list above.
Besides, there seems to be
php-cli.exe. I guess it would be OK to loop through each possible path. Check first for php-cli.exe, check for php.exe, and take the first match. Is that correct or is there a better practice?
preguntado el 10 de marzo de 12 a las 09:03
If the user has 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.
C:\> where php.exe C:\Program Files (x86)\WAMP\bin\php\php5.3.5\php.exe
Also see possibly related question: ¿Existe un equivalente de 'which' en la línea de comandos de Windows?.
If you are really desperate to find cualquier file on the user's computer, you could try executing the equivalent of a
find - but it's going to be lento!
C: && cd \ && dir /s /b php.exe
On powershell or commad prompt php -r "echo PHP_VERSION;" gives the version
See other PHP constantas: https://www.php.net/manual/es/reserved.constants.php
para responder tu pregunta
php -r "echo PHP_BINARY;" gives the full path to php.exe
if needed, to remove the php.exe
php -r "echo str_replace('php.exe', '', PHP_BINARY);"
It works. I tested it on macOS as with PHP 5.6.