如何在Windows上确定php.exe的路径 - 搜索默认路径?

时间:2012-03-10 09:59:59

标签: php python windows path sublimetext

我目前正在为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

这已经是一个非常集合,但我要求的是完整的列表,涵盖所有可能性 - 另一种解决方法应该是检查每条可能的路径。

因此,如果您在除此之外的某些地方安装了php.exe,请在路径中留下评论,我会将其添加到上面的列表中。

此外,似乎有php.exephp-cli.exe。我想可以循环遍历每个可能的路径,首先检查php-cli.exe,然后检查php.exe并进行第一场比赛。这是正确的还是有更好的做法?

5 个答案:

答案 0 :(得分:32)

如果用户已将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

另请参阅可能相关的问题:Is there an equivalent of 'which' on the Windows command line?

如果您真的急于在用户的计算机上找到任何文件,您可以尝试执行find的等效项 - 但它会是 slooow

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

答案 1 :(得分:4)

从PHP 5.4及更高版本开始,您可以使用PHP_BINARY常量。

答案 2 :(得分:2)

在 powershell 或命令提示符下 php -r "echo PHP_VERSION;"给出版本

查看其他 PHP 常量: https://www.php.net/manual/es/reserved.constants.php

回答你的问题

php -r "echo PHP_BINARY;" 给出 php.exe 的完整路径

如果需要,删除 php.exe

php -r "echo str_replace('php.exe', '', PHP_BINARY);"

答案 3 :(得分:0)

C:\xampp\php\php.exe 

如果您的xampp在 D: E:上应该可以工作,因此您从 C:

进行相应更改

答案 4 :(得分:-1)

echo PHP_BINDIR;

它有效,我在MacOS上测试它与php 5.6一样