显示文件夹并建立这些文件夹的链接

时间:2011-06-02 17:42:28

标签: php file-io

我希望用PHP构建一个目录浏览器。我刚刚启动了我的代码,但需要有人帮我完成或修改它。

$dir = dirname(__FILE__); //path of the directory to read

$iterator = new RecursiveDirectoryIterator($dir);
foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) {
if (!$file->isFile()) {
echo "<a href=". $file->getPath().">" . $file->getPath() . "\</a>";
    }
}

1 个答案:

答案 0 :(得分:0)

在开发它时,重要的是要认识到您正在处理两个不同的目录路径。一条路径是基于URL的,另一条路径是基于文档的。路径/会将您带到您的站点的根目录,其中C:\ some path \ www \也会将您带到那里。这两个都使用不同的方法引用相同的位置。

话虽如此,您将不得不使用基于URL的路径导航您的界面(除非您不关心公开文档路径 - 安全风险),但代码需要采取您点击的内容并将其转换为基于文档的路径。以下是一些可能有用的PHP函数。

__FILE__ - gives you the document path to the current PHP file
__DIR__ or dirname(__FILE__) - gives you the document path to the folder the current file is at    
getcwd() - gets the current working directory

此外,不要让链接转到文件路径,而是让它发布文件路径并根据发布的数据重新加载页面。

<form name='myform' method='post'>
    <a href='folderA' onclick="document.myform.path.value=this.getAttribute('href'); document.myform.submit(); return false;">Folder A</a>
    <a href='folderB' onclick="document.myform.path.value=this.getAttribute('href'); document.myform.submit(); return false;">Folder B</a>
    <input type='hidden' name='path' value='' />
</form>