首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从PHP CLI脚本中获取主目录?

如何从PHP CLI脚本中获取主目录?
EN

Stack Overflow用户
提问于 2009-12-13 06:33:44
回答 11查看 80.2K关注 0票数 58

从命令行中,我可以获得主目录,如下所示:

代码语言:javascript
复制
~/

如何在PHP CLI脚本中获取主目录?

代码语言:javascript
复制
#!/usr/bin/php
<?php
echo realpath(~/);
?>
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-12-13 06:46:52

使用$_SERVER['HOME']

编辑:

要使其完整,请查看print_r($_SERVER)提供给我的内容,并从命令行执行:

代码语言:javascript
复制
Array
(
    [TERM_PROGRAM] => Apple_Terminal
    [TERM] => xterm-color
    [SHELL] => /bin/bash
    [TMPDIR] => /var/folders/Lb/LbowO2ALEX4JTK2MXxLGd++++TI/-Tmp-/
    [TERM_PROGRAM_VERSION] => 272
    [USER] => felix
    [COMMAND_MODE] => unix2003
    [__CF_USER_TEXT_ENCODING] => 0x1F5:0:0
    [PATH] =>/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin
    [PWD] => /Users/felix/Desktop
    [LANG] => de_DE.UTF-8
    [SHLVL] => 1
    [HOME] => /Users/felix
    [LOGNAME] => felix
    [DISPLAY] => /tmp/launch-XIM6c8/:0
    [_] => ./test_php2
    [OLDPWD] => /Users/felix
    [PHP_SELF] => ./test_php2
    [SCRIPT_NAME] => ./test_php2
    [SCRIPT_FILENAME] => ./test_php2
    [PATH_TRANSLATED] => ./test_php2
    [DOCUMENT_ROOT] => 
    [REQUEST_TIME] => 1260658268
    [argv] => Array
      (
        [0] => ./test_php2
      )

    [argc] => 1
    )

我希望我不会暴露相关的安全信息;)

Windows兼容性

请注意,$_SERVER['HOME']在Windows上不可用。相反,该变量被拆分为$_SERVER['HOMEDRIVE']$_SERVER['HOMEPATH']

票数 77
EN

Stack Overflow用户

发布于 2011-08-05 02:54:49

您可以从环境中获取$HOME的值:

代码语言:javascript
复制
<?php
    $home = getenv("HOME");
?>
票数 60
EN

Stack Overflow用户

发布于 2015-09-12 00:46:55

此函数取自Drush project

代码语言:javascript
复制
/**
 * Return the user's home directory.
 */
function drush_server_home() {
  // Cannot use $_SERVER superglobal since that's empty during UnitUnishTestCase
  // getenv('HOME') isn't set on Windows and generates a Notice.
  $home = getenv('HOME');
  if (!empty($home)) {
    // home should never end with a trailing slash.
    $home = rtrim($home, '/');
  }
  elseif (!empty($_SERVER['HOMEDRIVE']) && !empty($_SERVER['HOMEPATH'])) {
    // home on windows
    $home = $_SERVER['HOMEDRIVE'] . $_SERVER['HOMEPATH'];
    // If HOMEPATH is a root directory the path can end with a slash. Make sure
    // that doesn't happen.
    $home = rtrim($home, '\\/');
  }
  return empty($home) ? NULL : $home;
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1894917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档