我希望用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>";
}
}
答案 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>