【问题标题】:What Path is acceptable?什么路径是可以接受的?
【发布时间】:2010-02-19 17:38:41
【问题描述】:

我使用下面的语句来返回运行脚本的目录名:

print dirname(__FILE__);

它输出类似这样的反斜杠:

www\EZPHP\core\ezphp.php

问题:

所有主要操作系统都可以接受带有反斜杠的路径吗?如果不是,我应该如何使用斜杠或反斜杠构造路径,以便在所有主要操作系统(例如 Windows、Linux、Ubuntu)上都可以接受。

谢谢。

【问题讨论】:

    标签: php path operating-system


    【解决方案1】:

    正斜杠是一条不错的路线。

    还有一个名为 DIRECTORY_SEPARATOR 的常量,它将返回代码运行所在系统的目录分隔符。

    我在为所有应用程序编写路径时使用正斜杠,当我分解返回路径的调用结果时,我经常使用 DIRECTORY_SEPARATOR,这样我就可以确保我总是有正确的路径。

    HTH, Jc

    【讨论】:

      【解决方案2】:

      我会将其规范化为正斜杠。 Windows 接受正斜杠,它们是 *nix 系统的默认设置

      print str_replace('\\','/',dirname(__FILE__));

      【讨论】:

      • @Ross:“它们是 *nix 系统的默认设置”。所以 *nix 系统默认使用正斜杠,但它们支持反斜杠吗?
      【解决方案3】:

      实际上,这并不重要...这是因为 dirname() 不一定返回反斜杠:它返回操作系统使用的任何目录分隔符。也就是说,无论 dirname 返回什么都是你应该使用的分隔符。

      除此之外,只需使用正斜杠即可:PHP 将在 Windows 和 Linux 中正确解释它。

      【讨论】:

        【解决方案4】:

        没关系,dirname() 总是返回 OS 格式的路径。

        dirname('c:/x'); // returns 'c:\'
        dirname('c:/Temp/x'); // returns 'c:/Temp'
        dirname('/x'); // returns '\'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-04-26
          • 2019-10-03
          • 2020-03-05
          • 1970-01-01
          • 1970-01-01
          • 2020-06-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多