所以说我有一个像这样的路径的字符串
$path = '/path/to/../../up/something.txt';
有没有一种内置于 PHP 中的方法来解析它并提供一个没有目录 ups (../) 的 URL?
例如
$path = parsePath('/path/to/../../up/something.txt'); // /up/something.txt
所以说我有一个像这样的路径的字符串
$path = '/path/to/../../up/something.txt';
有没有一种内置于 PHP 中的方法来解析它并提供一个没有目录 ups (../) 的 URL?
例如
$path = parsePath('/path/to/../../up/something.txt'); // /up/something.txt
realpath($path);
PHPrealpath()
很酷,但是如果您想在不访问文件系统的情况下解决这个问题怎么办?
我已经编写了这个函数,它可以返回一个路径,../
并计算出一个真实的路径。
它可能无法处理所有路径命令,所以如果您认为我应该实现另一个,请告诉我。
public function resolvePath($path) {
while (strstr($path, '../')) {
$path = preg_replace('/\w+\/\.\.\//', '', $path);
}
return $path;
}
我从这个用户那里借来的正则表达式贡献了 note。