【问题标题】:php - How to create path in a portable way using PHP APIphp - 如何使用 PHP API 以可移植的方式创建路径
【发布时间】:2013-06-10 10:35:51
【问题描述】:

问题:

dirname()realpath() 都返回带有 正确 斜线的路径,具体取决于您运行脚本的操作系统。

我想以可移植的方式(使用 PHP API)创建路径,因此我不必担心\/ 斜线。

realpath() 如果路径不存在则返回FALSE。所以,这不是一个选择:

define("MY_PATH", realpath(__DIR__."/myNewDirToCreate");

在其他不同的情况下,dirname() 将不是以下选项的选项:

define("MY_FILE", "I/should/use/an/abstract/path/definition.file");

因为它会返回 parten 目录,而不是文件的路径。我可以自己解决问题,使用regexstring 替换。但是PHP 是一个跨平台的环境,我肯定在大量的 PHP 文档中遗漏了一些功能。

问题:

  • 如果可能,无论脚本在什么操作系统上运行使用 PHP API,我如何创建路径?例如path("no/matter/what/os/are/you/running/this.file\or\what\slashes\you\are\using");

【问题讨论】:

  • 你不应该关心正斜杠和反斜杠,它们都可以工作。你所要做的就是使用 dirname() 来获取基本路径,然后,从那里,在任何地方都使用正斜杠,它会很好,我保证 :)
  • @Twisted1919 你是对的。我的代码中的错误误导我错误是斜杠的混合。

标签: php path backslash slash


【解决方案1】:

有一个可用的常量,叫做DIRECTORY_SEPARATOR

$path_to_file = $directory . DIRECTORY_SEPARATOR . $file

记录在这里:http://php.net/manual/en/dir.constants.php#constant.directory-separator

请注意,PHP 会在内部处理此问题,因此在 Windows 上您可能会得到一个正斜杠,但它们在 PHP 中可以正常工作!

【讨论】:

  • 这个常数的好信息。谢谢。
  • 我用 PHP 编写了关于门户路径的解决方案。 webdeveloper.gdemolished.com/php-portal-paths
  • 你真的很喜欢 sprintf 不是吗? @Halfstop
  • 我猜,这是一个有用的功能。在我的示例中,我使用过一次。 @TheSurrican
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2015-08-13
  • 2011-05-07
  • 2017-11-22
相关资源
最近更新 更多