Как я могу получить путь bin php от PHP? Я видел это в phpinfo (); но мне нужен другой метод, который получает его в системах Linux и Windows.
Вы можете использовать:
$_SERVER['_']
также постоянная
PHP_BINDIR
предоставляет каталог, в котором находится исполняемый файл php.
Образец на Codepad и ideone
Похож на соображения безопасности. Значения $_SERVER
не отображаются. (Думаю..Plz исправьте меня, если я ошибаюсь).
Только Linux Используйте команду «which», чтобы найти 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 и 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;
В Windows, используя wamp, вы можете использовать переменную ini – extension_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'));
Но он работает только в окнах, поэтому мы должны использовать этот ansver – https://stackoverflow.com/a/3889630/2574125
Как я получил это? Я просто набрал echo echo phpinfo();
и искали там php-путь. Juse см. Здесь:
то я просто получаю здесь: php getenv и … вы видите результат. Используйте его, ребята.