代码之家  ›  专栏  ›  技术社区  ›  alex

在PHP中是否有这样的内置方法来解析字符串:“/path/to/../../up/something.txt”

  •  3
  • alex  · 技术社区  · 15 年前

    假设我有一条像这样的路径

    $path = '/path/to/../../up/something.txt';
    

    有没有一种内置在PHP中的方法来解析它并在不使用ups(../)目录的情况下找到一个URL?

    例如。

    $path = parsePath('/path/to/../../up/something.txt'); // /up/something.txt
    
    2 回复  |  直到 15 年前
        1
  •  6
  •   alex    15 年前
    realpath($path);
    

    Docs

        2
  •  0
  •   alex    15 年前

    realpath() 很酷,但是如果您想在不访问文件系统的情况下找到它怎么办?

    ../ 类似的计算出一条真实的路径。

    它可能不处理所有路径命令,所以如果您认为我应该实现另一个,请告诉我。

    public function resolvePath($path) {
    
        while (strstr($path, '../')) {
            $path = preg_replace('/\w+\/\.\.\//', '', $path);
        }
    
        return $path;
    
    }
    

    我从这借来的瑞格鞋 user contributed note .

    推荐文章