3

采取以下目录结构:

  • 家长1
    • 子文件夹
      • 子文件夹 1
      • 子文件夹 2

子文件夹 2 的路径为:

Parent/Child folder/Child Folder 2

但是,另一个有效路径也可以是

Parent/Child folder/Child Folder 1/../Child Folder 2

有没有办法“简化”路径,或转换路径,例如:

Parent/Child folder/Child Folder 1/../Child Folder 2

Parent/Child folder/Child Folder 2

我试图找到一种从opendir($directory)给你的句柄中提取文件名的方法,但我还没有找到一种方法来做到这一点。我也很确定肯定有一些术语或比“简化”更好的措辞,但我不知道要搜索什么。“简化路径” php 并没有太大帮助。

编辑:

我注意到 realpath 给了我完整的完整路径。它并没有给你相对的,如Parent/Child folder/Child Folder 2,但这C:\Path\To\Server\Directory\Parent\Child Folder\Child Folder 2 有点令人失望,但我可以通过一些字符串操作将它转换回来。

4

3 回答 3

3

如果路径确实存在,您可以使用它realpath()来解析相对路径部分。它还解析符号链接。

于 2012-12-03T00:16:10.737 回答
1

尝试realpath()

$path = realpath('Parent/Child folder/Child Folder 1/../Child Folder 2');
于 2012-12-03T00:16:14.740 回答
1

尝试使用功能realpath()

于 2012-12-03T00:16:57.393 回答