3

所以说我有一个像这样的路径的字符串

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

有没有一种内置于 PHP 中的方法来解析它并提供一个没有目录 ups (../) 的 URL?

例如

$path = parsePath('/path/to/../../up/something.txt'); // /up/something.txt
4

2 回答 2

6
realpath($path);

文档

于 2010-02-26T01:21:19.303 回答
0

PHPrealpath()很酷,但是如果您想在不访问文件系统的情况下解决这个问题怎么办?

我已经编写了这个函数,它可以返回一个路径,../并计算出一个真实的路径。

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

public function resolvePath($path) {

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

    return $path;

}

我从这个用户那里借来的正则表达式贡献了 note

于 2010-04-07T07:35:39.883 回答