Filesystem - 文件夹下文件夹下的文件夹...

时间:2014-12-02 08:35:31

标签: php filesystems directory

a busy cat

您好,

当我点击第一个文件夹中的文件夹时,它无法识别其中的内容。 我做错了什么?

<?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>';
}

   }


?>

我在每个文件夹中都有更多文件夹供测试。 但是你可以看到它确实更进一步

1 个答案:

答案 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 . '>'; 

但要注意:使用请求变量来构建路径可能是一个安全问题。