【问题标题】:How to get just the name of the parent folder in the directory where a script is running in php?如何在php中运行脚本的目录中仅获取父文件夹的名称?
【发布时间】:2012-02-17 07:27:32
【问题描述】:

我只想获取目录中当前正在运行脚本的父文件夹的名称?

如果我们有一个名为 foo.php 的脚本,其路径为“/Users/Somone/Sites/public/foo.php”,我如何才能从该文件路径中获取“public”而不是整个目录树?

任何帮助都会很棒。

谢谢。

【问题讨论】:

  • 我无法投反对票,这已经被问过了,如果你用谷歌搜索的话,会有很多链接。 [stackoverflow.com/questions/1882044/…
  • 感谢您称我为愚蠢。我无法找到解决方案,因此我在这里发布。
  • 我在发布之前确实遇到了您链接到的帖子,但没有发现它有帮助。
  • php: get the directory in which resides a file @rdlowrey 的可能副本 有十几个更好的副本,但通过 Aletheia,它是副本。 (还要记住,PHP 5.3 版刚刚超过了20% install base,“最正确”的解决方案还有待商榷。)

标签: php


【解决方案1】:
    //on windows server
$cur_dir = explode('\\', getcwd());
$sector=$cur_dir[count($cur_dir)-2];
echo $sector;
   //on linux server
$cur_dir = explode('/', getcwd());
$sector=$cur_dir[count($cur_dir)-2];
echo $sector;

根据需要更改父目录:-2,-3,-4

【讨论】:

  • 这是 3 年多以前提出的问题,并且用户没有表现出任何解决问题的努力,请始终留意问题提出的日期。
【解决方案2】:

最简单的方法:

basename(__DIR__);

正如@mario sagely 指出的那样,这仅适用于 PHP 5.3+,因此,如果您坚持使用 5.2 或更低版本……嗯……您应该切换到新主机并停止使用旧版软件。

【讨论】:

  • 包含使用包含的路径而不是包含它们的文件的路径...有什么想法吗?
【解决方案3】:

这对我有用:

trim(strrchr(__DIR__, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);

【讨论】:

    【解决方案4】:

    如果您将脚本文件(作为文件的填充路径)作为 dirname() 的 arg 传递,它将返回父目录。 http://php.net/manual/en/function.dirname.php

    一旦你有了它,将该字符串传递给 strrchr 以获取最后一个斜杠之后的字符串 http://www.php.net/manual/en/function.strrchr.php

    strrchr(dirname(__FILE__, '/')
    

    【讨论】:

      【解决方案5】:
      echo basename(__DIR__);
      

      编辑:看来__DIR__ 不包括尾随目录分隔符,因此substr() 调用是不必要的。

      【讨论】:

        【解决方案6】:
        substr(__DIR__, strrpos(__DIR__, '/')+1);
        

        【讨论】:

          猜你喜欢
          • 2018-05-28
          • 2012-01-02
          • 2015-06-27
          • 1970-01-01
          • 2010-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-22
          相关资源
          最近更新 更多