Вопрос

Как я могу получить путь BIN PHP от PHP? Я видел это в phpinfo (); Но мне нужен другой метод, который получает его в системах Linux и Windows.

Это было полезно?

Решение

Ты можешь использовать:

$_SERVER['_']

Также, предопределенная константа PHP_BINDIR Дает каталог, где найден исполняемый файл PHP.

Образец дальше Кодепад и Идеон.

Похоже, по соображениям безопасности, $_SERVER Значения не выставлены. (Я думаю, пожалуйста, поправьте меня, если я ошибаюсь).

Другие советы

Только Linux Используйте команду «Какой« », чтобы найти PHP.

$phpPath = exec("which php");

Примечание. Это не гарантирует тот же исполняемый файл 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.php.php. и https://github.com/symfony/symfony/blob/master/src/symfony/component/process/executabillfinder.php.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;

В Windows, используя WAMP, вы можете использовать переменную INI - Extaction_DIR - как он находится в папке PHP.

как это:

echo str_replace('ext/', 'php.exe', ini_get('extension_dir'));

Обычно в простой установке PHP по умолчанию под Windows файл 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 phpinfo(); и искал там PHP путь. Джьюс Посмотрите здесь:how i found php path

Тогда я просто получаю здесь: PHP GETENV и ... вы видите результат. Используйте это, люди.

Windows, Xampp.

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

if(is_file($expected)){
   return $php;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top