以下代码可以很好地列出所有文件夹,子文件夹及其文件。
但我需要在directory.html中创建它,它将超链接到该文件。它将在计算机上打开,所以链接我该怎么做,截至目前我只能显示内容但没有超链接。
感谢您的帮助。 !
<?php
$base_dir = 'C:\Users\baoky\Dropbox\SS133A\FINAL PHASE\Documents To Submit';
if (is_dir($base_dir))
scan_directory($base_dir);
else
echo 'Invalid base directory. Please check your setting.';
// recursive function to check all dir
function scan_directory($path) {
if (is_dir($path)) {
if ($dir_handle = opendir($path)) {
echo '<ul>';
while (($file = readdir($dir_handle)) !== false) {
if ($file != '.' && $file != '..') {
if (is_dir($path . '/' . $file)) {
echo '<li>';
echo '<a href="'.$file.'">'.$file.'</a>';
scan_directory($path . '/' . $file);
echo '</li>';
}
else
echo "<li><a href=\"$file\">{$file}</a></li>";
}
}
echo '</ul>';
}
}
}
?>
问题是递归是无法获得完整路径的。我做了一个href,但如果一个文件夹在1个文件夹内,那么在另一个子文件夹中,然后另一个子文件夹是folder1 / folder2 / folder3 / file.txt,那么它只显示file.txt是错误的。
答案 0 :(得分:0)
echo "<a href='$file'>$file</a>"
将是它的基础,虽然您需要构建引导文件的FULL路径,因为您正在进行递归转储并且只处理“本地”子路径。