web-dev-qa-db-ja.com

Windowsでphp.exeへのパスを決定する方法-デフォルトのパスを検索するには?

現在、OS XでSublime Text 2のプラグインをいくつか開発しています。それらをクロスプラットフォームにしたいのですが、php.exeがどこにインストールされているかを確認する必要があります。

現在、Pythonで/usr/bin/phpを呼び出しています。これは明らかにOS XとLinuxでのみ機能します。

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

しかし、Windowsでは、php.exeのデフォルトのデフォルトパスがないようです。私がそれをググると、より多くの可能性が現れました。これまでのところ、私は次の各パスの存在を確認する必要があると思います:

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

それはすでにかなりのコレクションですが、私が求めているのは、すべての可能性をカバーするcompleteリストのいずれかです-orチェックと同じくらい堅牢であることを理解する別の方法各可能なパス。

Php.exeがこれら以外の場所にインストールされている場合は、パスをコメントに残してください。上のリストに追加します。

また、php.exephp-cli.exeがあるようです。可能なパスをループして最初にphp-cli.exeを確認し、次にphp.exeを確認して最初の一致を取得するのは問題ないと思います。それは正しいですか、それとももっと良い方法がありますか?

18
Matt

ユーザーがシステムに追加されたPHPのbinフォルダーを定義している場合は、PATHを試してphp -vを実行して、それが存在することを確認できます。

Php実行可能ファイルへのフルパスを取得する場合、ターゲットシステムがWindows 2003以降(つまりVistaおよび7)であれば、WHEREコマンドを使用できます。

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

関連する可能性のある質問も参照してください: Windowsコマンドラインに「which」に相当するものはありますか?

ユーザーのコンピューターでanyファイルを見つけるのに本当に必死である場合、findと同等のファイルを実行してみることができますが、それはbeslooow

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

PHP 5.4以降では、PHP_BINARY定数を使用できます。

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

XamppがD:またはE:の場合に機能するはずですC:から適宜変更してください

0
joash