gpt4 book ai didi

PHP在不遵循符号链接(symbolic link)的情况下获取绝对路径

转载 作者:行者123 更新时间:2023-12-02 22:08:19 25 4
gpt4 key购买 nike

如何在不遵循符号链接(symbolic link)的情况下获取文件的绝对路径。

例如

/path/to/some/file
/path/to/some/link -> /path/to/some/file
/path/to/some/directory/

我当前的工作目录是 /path/to/some/directory/ 我去 realpath('../link) 它返回 /path/到/一些/文件

(我知道 realpath 应该以这种方式工作)

是否有函数代替 realpath 返回 /path/to/some/link

最佳答案

David Beck在 PHP 手册的注释部分中编写了一个无需访问实际文件系统即可清除相对路径组件的解决方案。唉,他忘了给函数添加一个 return 语句,但如果这是你需要的,它似乎工作得很好。也适用于 URL。

function canonicalize($address)
{
$address = explode('/', $address);
$keys = array_keys($address, '..');

foreach($keys AS $keypos => $key)
{
array_splice($address, $key - ($keypos * 2 + 1), 2);
}

$address = implode('/', $address);
$address = str_replace('./', '', $address);

return $address;
}

$url = '/path/to/some/weird/directory/../.././link';
echo canonicalize($url); // /path/to/some/link

关于PHP在不遵循符号链接(symbolic link)的情况下获取绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15778391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com