如何从PHP获取php的bin路径?我在phpinfo()中看到过它; 但我需要另一种方法在Linux和Windows系统中获取它.
cod*_*ict 20
您可以使用:
$_SERVER['_']
Run Code Online (Sandbox Code Playgroud)
此外,预定义常量PHP_BINDIR给出了找到php可执行文件的目录.
看起来,出于安全原因,$_SERVER值不会暴露.(我猜.如果我错了,请纠正我).
Sea*_*ney 15
Linux Only使用"which"命令查找php.
$phpPath = exec("which php");
Run Code Online (Sandbox Code Playgroud)
请注意,这并不保证您的Web服务器可能使用的php可执行文件,而是查看路径时找到的第一个实例.
Sir*_*ius 10
假设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
}
Run Code Online (Sandbox Code Playgroud)
也许最好的解决方案是在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.正在使用:
<?php
use Symfony\Component\Process\PhpExecutableFinder;
$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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38863 次 |
| 最近记录: |