使用 PHP 遍历目录



>我有一个文件夹的路径(例如 /var/www/tester/assets/themes/default/css/ (。

例如,用户可以提供文件夹的相对路径。 layout/ie7.css会给出/var/www/tester/assets/themes/default/css/layout/ie7.css的道路.

这工作正常,但是我希望用户也能够向上导航目录树。

因此,如果用户提供 css 文件夹的路径../../cache/css/ie7.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);

但这只会返回错误。我该怎么做?

首先,真实路径函数还会检查给定路径是否存在...你确定你的路径存在吗???

/var/www/tester/assets/themes/default/css/../../cache/css/ie7.css 

不会在

/var/www/tester/assets/themes/default/cache/css/ie7.css 

正如您所建议的,但它最终在

/var/www/tester/assets/themes/cache/css/ie7.css 

包含给定文件的此文件夹是否存在?

只是不要。像/var/www/tester/assets/themes/default/css/../../cache/css/ie7.css这样的路径没有错.它适用于所有操作系统和浏览器。

注意:您是否知道您可能会在此处造成安全风险?如果用户提供../../../../../../../etc/passwd怎么办?

相关内容

  • 没有找到相关文章

最新更新