web-dev-qa-db-fra.com

Comment déterminer le chemin d'accès à php.exe sous Windows - rechercher les chemins d'accès par défaut?

Je développe actuellement quelques plugins pour Sublime Text 2 sur OS X et j'aimerais les rendre multi-plateformes, ce qui signifie que je dois savoir si et où php.exe est installé.

À l'heure actuelle, j'appelle /usr/bin/php en Python, qui ne fonctionne évidemment que sous 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 sous Windows, il ne semble pas y avoir de chemin par défaut définitif pour php.exe. Plus je googlé pour cela, plus de possibilités se présentaient. Jusqu'à présent, je pense que je devrais vérifier l'existence de chacun des chemins suivants:

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

C'est déjà tout à fait une collection, mais ce que je demande, c'est une liste complète couvrant toutes les possibilités - ou une autre façon de le comprendre qui devrait être aussi robuste que la vérification de chaque chemin possible.

Donc, si vous avez php.exe installé ailleurs que ceux-ci, veuillez laisser un commentaire avec votre chemin et je l'ajouterai à la liste ci-dessus.

De plus, il semble y avoir php.exe et php-cli.exe. J'imagine qu'il serait acceptable de parcourir tous les chemins possibles, de vérifier d'abord php-cli.exe, puis de rechercher php.exe et de prendre la première correspondance. Est-ce correct ou existe-t-il une meilleure pratique?

16
Matt

Si l'utilisateur a défini le dossier bin de PHP ajouté au système PATH, vous devriez simplement pouvoir essayer d'exécuter php -v pour vérifier qu'il est présent. 

Si vous voulez obtenir le chemin complet de l'exécutable php et que le système cible est Windows 2003 ou une version ultérieure (donc Vista et 7), vous pouvez utiliser la commande WHERE, c'est-à-dire:

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

Voir également la question éventuellement liée: Existe-t-il un équivalent de 'qui' sur la ligne de commande Windows? .

Si vous êtes vraiment désespéré de trouver le fichier any sur l'ordinateur de l'utilisateur, vous pouvez essayer d'exécuter l'équivalent d'une find - mais ce sera slooow!

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

À partir de PHP 5.4 et ultérieur, vous pouvez utiliser la constante PHP_BINARY.

4
Pierre
C:\xampp\php\php.exe 

Devrait fonctionner si votre xampp est sur D: ou E: vous changez en conséquence de C:

0
joash