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


How to determine path to php.exe on Windows - search default paths

我目前正在为OS X上的Sublime Text 2开发几个插件,我想让它们跨平台,这意味着我必须了解php.exe是否安装以及在哪里安装。

现在我在Python中调用/usr/bin/php,它显然只适用于OSX和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,然后进行第一个匹配。这是正确的还是有更好的做法?

如果用户已经将PHP的bin文件夹添加到系统PATH中,那么您应该能够尝试并执行php -v来检查它是否存在。

如果你想获得PHP可执行文件的完整路径,并且目标系统是Windows Server 2003或更高版本(因此是Windows Vista和Windows 7),那么你可以使用WHERE命令,即:

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

另请参阅可能相关的问题:是否存在';其';在Windows命令行上

如果你真的很想在用户的计算机上找到任何文件,你可以尝试执行相当于find的文件,但这将是

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

在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('hp.exe','',php_BINARY)"

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

使用:

C:'xampp'php'php.exe

如果您的XAMPP实例位于D:E:上,它应该可以工作。您可以相应地将其从C:更改。

我为您找到了一种方法来查找php.exe的存储位置。在C:中,单击搜索栏并搜索";php.exe";。然后,会出现一个名为php的应用程序并单击它。然后,cmd将打开,在cmd选项卡中,它将在末尾显示php.exe。这就是你的php.exe所在的位置,你可以把文件的链接地址放在VS代码中。

尝试

echo PHP_BINDIR;

它有效。我在macOS上用PHP 5.6测试了它。