您好,
当我点击第一个文件夹中的文件夹时,它无法识别其中的内容。 我做错了什么?
<?php
$fil = new SplFileObject(__FILE__);
$dato = new DateTime();
$dato->setTimezone(new DateTimeZone('Europe/Copenhagen'));
$dato->setTimestamp($fil->getMTime()); // getMTime sidst modificeret
if($_GET) {
$path = $fil->getPath();
$path = $path . "/" . $_GET['mappe'];
} else {
$path = $fil->getPath();
}
$mappeinterator = new FilesystemIterator($path);
foreach ($mappeinterator as $fileinfo) {
$type = $fileinfo->isDir();
if(!$type){
echo '<div style="width: 648px; margin:0 auto;">';
echo '<div id="name">';
echo $fileinfo->getFilename();
echo '</div>';
echo '<div id="kb">';
echo $fileinfo->getSize() . ' kb' . '<br>';
echo '</div>';
echo '<div id="mo">';
echo 'Modified on';
echo '</div>';
echo '<div id="m">';
$modificeret = $dato->format('d-m-Y H:i:s');
echo $modificeret . '<br>';
echo '</div>';
echo '</div><br><br>';
} else {
echo '<div style="width: 648px; margin:0 auto;">';
echo '<div id="name">';
// ------------------------------------------------------
$m = $fileinfo->getFilename();
echo '<a href=op02.php?mappe=' . $m . '>';
echo $m;
echo '</a>';
echo '</div>';
// ------------------------------------------------------
echo '<div id="kb">';
echo $fileinfo->getSize() . ' kb' . '<br>';
echo '</div>';
echo '<div id="mo">';
echo 'Modified on';
echo '</div>';
echo '<div id="m">';
$modificeret = $dato->format('d-m-Y H:i:s');
echo $modificeret . '<br>';
echo '</div>';
echo '</div><br><br>';
}
}
?>
我在每个文件夹中都有更多文件夹供测试。 但是你可以看到它确实更进一步
答案 0 :(得分:0)
您使用__FILE__
目录作为基础。您必须提供子子目录的完整路径,这意味着包括MAPPE。您的目录不是C:\ xampp \ htdocs \ AW \ Filsystem \ mappe3,而是C:\ xampp \ htdocs \ AW \ Filsystem \ MAPPE \ mappe3。因此,您应该在链接中包含整个相对路径:
$m = substr($path."\\".$fileinfo->getFilename(), strlen(dirname(__FILE__))+1);
echo '<a href=op02.php?mappe=' . $m . '>';
但要注意:使用请求变量来构建路径可能是一个安全问题。