【发布时间】:2012-07-13 11:05:19
【问题描述】:
我有一个文件夹路径(例如/var/www/tester/assets/themes/default/css/)。
用户可以提供文件夹的相对路径,例如。 layout/ie7.css 将给出/var/www/tester/assets/themes/default/css/layout/ie7.css 的路径。
这很好用,但是我希望用户也能够向上导航目录树。
如果用户提供../../cache/css/ie7.css,则再次使用css文件夹的路径,我希望路径最终为/var/www/tester/assets/themes/default/cache/css/ie7.css。
我想我可以将它们一起传递给realpath() 例如:
$base = '/var/www/tester/assets/themes/default/css/';
$user_path = '../../cache/css/ie7.css';
$final_path = realpath($base.$user_path);
但这只会返回 false。我该怎么做?
【问题讨论】:
-
php有权限打开shis文件夹吗?用干净的路径'/var/www/tester/assets/themes/cache/css/ie7.css'试试,看看你得到了什么
-
"运行脚本必须对层次结构中的所有目录具有可执行权限,否则 realpath() 将返回 FALSE。" - 来自文档...
标签: php relative-path realpath directory-traversal