【发布时间】:2014-06-28 15:09:25
【问题描述】:
script.php
$filename = realpath(sprintf("%s/%s", getcwd(), $argv[1]));
var_dump($filename);
让我们尝试一些事情
[/foo/bar/bof] $ php script.php ../foo.txt
string(16) "/foo/bar/foo.txt"
[/foo/bar/bof] $ php script.php ../nonexistent.txt
bool(false)
该死! realpath 正在返回 false,因为该文件不存在。
我希望看到../nonexistent.txt 是
string(24) "/foo/bar/nonexistent.txt"
如何获取 PHP 中任何相对路径的规范化路径?
注意:我看到了一些关于解析符号链接路径的问题。这些问题的答案不适用于我的问题。
【问题讨论】:
-
去掉“坏”文件名,只留下目录组件,然后是 realpath。
-
@MarcB,要处理极端情况,看起来需要更多的工作。请看下面我的回答。我真的希望有更好的方法来做到这一点。
标签: php path canonicalization realpath