Question: 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` is installed.

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 *complete* 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.exe` and `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?

Answer: 
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.

If you want to obtain the full path to the PHP executable and the target system is [Windows Server 2003](https://en.wikipedia.org/wiki/Windows_Server_2003) or later (so [Windows Vista](https://en.wikipedia.org/wiki/Windows_Vista), and [Windows 7](https://en.wikipedia.org/wiki/Windows_7)) then you could use the `WHERE` command, i.e.:

```
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?](https://stackoverflow.com/questions/304319/is-there-an-equivalent-of-which-on-windows)*.

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

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

```
Try

```
echo PHP_BINDIR;

```

It works. I tested it on macOS as with PHP 5.6.