当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何从PHP获取PHPBIN的路径?》经验,为你挑选了4个好方法。

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



1> codaddict..:

您可以使用:

$_SERVER['_']

此外,预定义常量PHP_BINDIR给出了找到php可执行文件的目录.

样品在键盘和ideone.

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


在Windows中,PHP_BINDIR常量似乎指向"C:\ php5",即使php在一个完全不同的目录中,就像对我来说"C:\ dev\php".在这里,PHP被设置为apache模块.
PHP_BINDIR在Debian上为我工作.$ _SERVER ['_']没有.

2> SeanDowney..:

Linux Only使用"which"命令查找php.

$phpPath = exec("which php");

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


这并不一定会产生正确的php二进制文件,因为Apache和命令行可能会使用不同的.

3> SirDarius..:

假设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
}



4> Krisztián Fe..:

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

find()) {
        throw new \Exception('The php executable could not be found, add it to your PATH environment variable and try again');
    }

    return $phpPath;

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有