【问题标题】:How to get the canonical current working directory如何获取规范的当前工作目录
【发布时间】:2019-08-20 12:33:17
【问题描述】:

我一直在寻找一种不使用getcwd 来获取当前工作目录的方法。原因是这个函数的返回值在chdir 中是可变的。此外,因此我怀疑getcwd 是一个阻塞函数。

我不介意解决方案是否阻塞,只要它是不可变的(因此可缓存)并且可以从任何地方调用(即没有引导)。它必须始终是执行进程的目录。

【问题讨论】:

  • __DIR__ 是一个常量,所以它应该是不可变的(不要引用我的话:P),并且可能适合您的需要?它返回正在使用的文件的位置。你可以在这里阅读更多关于差异的信息stackoverflow.com/questions/2184810/…
  • 谢谢,但这不是我想要的。假设你的脚本在/path/to/script.php,从/path 运行它就像./to/script.php 将意味着CWD 仍然是/path。我的问题是chdir 会改变这一点(不是真的,它是一个模拟)但是原始的规范 CWD 会掉到水槽里,我无论如何都找不到让它回来。

标签: php directory process io


【解决方案1】:

找到了。我没有意识到$_SERVER 有这么多关于 CLI 的信息。

var_dump($_SERVER['PWD']);

仍然不是完全不可变的,但是改变哪个足够好是非常糟糕的做法。

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 1970-01-01
    • 2010-09-18
    • 2013-06-26
    • 1970-01-01
    • 2011-06-19
    • 2014-03-10
    • 2021-01-18
    相关资源
    最近更新 更多