采用以下目录结构:
子文件夹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
这有点令人失望,但我可以通过一些字符串操作将其转换回来。
答案 0 :(得分:3)
如果路径确实存在,您可以使用realpath()
来解析相对路径部分。它还解析了符号链接。
答案 1 :(得分:1)
$path = realpath('Parent/Child folder/Child Folder 1/../Child Folder 2');
答案 2 :(得分:1)
尝试使用函数realpath()
。