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?
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
À partir de PHP 5.4 et ultérieur, vous pouvez utiliser la constante PHP_BINARY.
C:\xampp\php\php.exe
Devrait fonctionner si votre xampp est sur D: ou E: vous changez en conséquence de C: