【问题标题】:How do I use __dir__ without getting the realpath?如何在不获取真实路径的情况下使用 __dir__?
【发布时间】:2016-04-06 22:32:55
【问题描述】:

假设我有一个从/some/real/location 指向/some/fake/location 的符号链接

在那个假设的目录中,我有一个名为 blah.php 的文件,内容如下:

#!/usr/bin/php    
<?php echo __dir__; ?>

然后我从命令行执行blah.php,如下所示:

php /some/fake/location/blah.php

输出是

/some/real/location

如何在解析任何符号链接的情况下获取当前 PHP 文件的目录?

【问题讨论】:

    标签: php symlink


    【解决方案1】:

    在到处搜索之后,似乎有一百万其他人需要__dir__ 来解决符号链接。然而不幸的是,答案是没有答案。

    【讨论】:

      【解决方案2】:

      由于__DIR__ 自动解析符号链接,您可能希望使用$_SERVER["SCRIPT_FILENAME"] 代替。它将返回当前执行脚本的绝对路径名。

      【讨论】:

      • 不是我想要的,但我已经尝试过弄乱那个变量。 blah.php 包含其他文件,我希望这些文件知道它们所在的目录。$_SERVER['SCRIPT_FILENAME'] 仅返回 blah.php 的完整路径。
      • 这里回答有帮助吗:stackoverflow.com/questions/12580330/… ?
      • 看起来完全一样的问题,但接受的答案完全不同。 blah.php 不知道它是否在符号目录中,也不知道它的存储位置。 readlink(__dir__) 也会返回真实目录而不是想要的假目录。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 2021-12-21
      • 2015-06-25
      • 2011-01-25
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多