如何从PHP获取PHP BIN的路径?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从PHP获取PHP BIN的路径?相关的知识,希望对你有一定的参考价值。

如何从php获取php的bin路径?我在phpinfo()中看到过它;但我需要另一种方法在Linux和Windows系统中获取它。

答案

您可以使用:

$_SERVER['_']

此外,the predefined constant PHP_BINDIR给出了找到php可执行文件的目录。

关于Codepadideone的样本。

看起来,出于安全原因,$_SERVER值不会暴露。 (我猜。如果我错了,请纠正我)。

另一答案

Linux Only使用“which”命令查找php。

$phpPath = exec("which php");

请注意,这并不保证您的Web服务器可能使用的php可执行文件,而是查看路径时找到的第一个实例。

另一答案

假设php可执行文件位于系统路径中,使用环境变量的方法。

function getPHPExecutableFromPath() {
  $paths = explode(PATH_SEPARATOR, getenv('PATH'));
  foreach ($paths as $path) {
    // we need this for XAMPP (Windows)
    if (strstr($path, 'php.exe') && isset($_SERVER["WINDIR"]) && file_exists($path) && is_file($path)) {
        return $path;
    }
    else {
        $php_executable = $path . DIRECTORY_SEPARATOR . "php" . (isset($_SERVER["WINDIR"]) ? ".exe" : "");
        if (file_exists($php_executable) && is_file($php_executable)) {
           return $php_executable;
        }
    }
  }
  return FALSE; // not found
}
另一答案

也许最好的解决方案是在Symfony流程组件中:https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Process/PhpExecutableFinder.phphttps://github.com/symfony/symfony/blob/master/src/Symfony/Component/Process/ExecutableFinder.php。正在使用:

<?php
    use SymfonyComponentProcessPhpExecutableFinder;

    $phpFinder = new PhpExecutableFinder;
    if (!$phpPath = $phpFinder->find()) {
        throw new Exception('The php executable could not be found, add it to your PATH environment variable and try again');
    }

    return $phpPath;
另一答案

在windows中,使用wamp,你可以使用ini变量 - extension_dir - 因为它放在php文件夹中。

像这样:

echo str_replace('ext/', 'php.exe', ini_get('extension_dir'));
另一答案

通常,在Windows下的简单默认PHP安装中,php.ini文件位于PHP二进制文件的同一目录中并从中加载。

为了简化,Windows用户:

echo dirname(php_ini_loaded_file()).DIRECTORY_SEPARATOR.'php.exe';

瞧!

当然,如果您使用多个ini文件,如果文件不在同一个PHP二进制目录中,则可能无效。顺便说一句,这可能解决大多数情况。 Windows开发人员从本地开发环境运行PHP。

另一答案

这很容易!

var_dump(getenv('PHPBIN'));

但它只适用于windows,所以我们应该使用这个ansver - https://stackoverflow.com/a/3889630/2574125

我怎么了?我只是键入echo echo phpinfo();并在那里搜索php路径。 Juse见这里:how i found php path

然后我就到了这里:php getenv和......你看到了结果。伙计们,请使用它。

另一答案

Windows,XAMPP

$php = getenv('PHPRC') . '/php.exe';

if(is_file($expected)){
   return $php;
}

以上是关于如何从PHP获取PHP BIN的路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何从URL获取片段标识符(hash#之后的值)?

如何从 PHP 获取 PHP 二进制文件的路径?

php如何从数据库中读取多张图片的路径

PHP 视图参数处理代码:从漂亮的组路径获取gid

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

使用 PHP 从 URL 字符串中获取文件路径/扩展名 [重复]