23

phpPHPからのバイナリパスを取得するにはどうすればよいですか?

phpinfo()で見ましたが、Linux および Windows システムでそれを取得する別の方法が必要です。

4

9 に答える 9

21

以下を使用できます。

$_SERVER['_']

また、定義済みの定数PHP_BINDIRは、PHP 実行可能ファイルが存在するディレクトリを示します。

CodePadIdeoneのサンプル。

セキュリティ上の理由から、$_SERVER値は公開されていないようです。

于 2010-10-08T10:11:21.680 に答える
18

Linuxのみ

"which" コマンドを使用して検索しますphp

$phpPath = exec("which php");

これはphp、Web サーバーが使用している可能性のある同じ実行可能ファイルを保証するものではなく、パスを調べたときに最初に見つかったインスタンスを保証するものではないことに注意してください。

于 2011-05-02T22:29:52.180 に答える
11

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
}
于 2010-10-08T10:22:33.017 に答える
4

Windows では、WAMPを使用して、PHP フォルダーに配置されているini変数 - extension_dir -を使用できます。

このような:

echo str_replace('ext/', 'php.exe', ini_get('extension_dir'));
于 2016-06-29T15:22:15.083 に答える