Comment faire pour déterminer le chemin d'accès à php.exe sur windows - recherche de chemins d'accès par défaut?

Je suis en train de développer un couple de plugins pour Sublime Text 2 sur OS X et je voudrais faire de la croix-plate-forme, ce qui signifie que je dois savoir si et où php.exe est installé.

Droit maintenant, je /usr/bin/php en Python, ce qui évidemment ne fonctionne que sur OS X et Linux:

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

Mais sur Windows, il ne semble pas definitve chemin d'accès par défaut pour php.exe. Plus j'ai cherché sur google, le plus possibilies a montré jusqu'à. Jusqu'à présent, je pense que je l'aurais pour vérifier chacun des chemins d'accès suivants pour l'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

Qui est déjà une sacrée collection, mais ce que je demande, c'est un complète liste couvrant toutes les possibilités - ou une autre façon de déterminer ce que devrait être aussi robuste que la vérification de chaque chemin possible.

Donc si vous avez php.exe installé dans un endroit autre que ces derniers, merci de laisser un commentaire avec votre chemin et je vais l'ajouter à la liste ci-dessus.

En outre, il semble y avoir php.exe et php-cli.exe. Je suppose que ce serait ok pour boucle creux de chaque chemin possible, vérifiez d'abord php-cli.exe puis vérifier php.exe et de prendre le premier match. Est-ce exact ou est-il préférable?

Je voudrais juste faire une recherche dans le PATH de Windows, et puis si il n'y est pas, demander à l'utilisateur. Votre liste ne peut jamais être complète. Et, si l'utilisateur a plusieurs chemins d'accès à un php.exe? J'ai 5 ou 6 php.exe droit maintenant.
Prendre un coup d'oeil pour la PHPRC variable d'environnement. Il contient le répertoire où php.exe est situé. Il est souvent disponible sur les systèmes windows.
vous pourriez être en mesure de rechercher le registre, mais je ne suis pas expert en la matière donc je ccouldn pas dire comment.

OriginalL'auteur Matt | 2012-03-10