Перейдите через веб-каталог в браузере

В настоящее время я пробую следующее:

Я хочу перемещаться по моему веб-каталогу в браузере. Допустим, у меня есть папка здесь: /var/www и теперь я хочу иметь возможность перемещаться по структуре папок на сайте, который я создаю сам. Таким образом, есть интерактивные папки, и в этих папках снова папки, файлы и т. Д., Которые должны быть загружаемыми.
Я уже думал о RecursiveDirectoryIterator, но так как этот показывает только все имена файлов одновременно, это не то, что мне нужно (так как я хочу только папки в каталоге, в котором я сейчас нахожусь, а затем, если я нажму на каталог, снова буду там и т. д. (как Я бы написал (на сервере): cd test ls cd folder_in_test lsи так далее, с возможностью вернуться к папке более высокого уровня, конечно. Такое же поведение, как, например, здесь на Dropbox или на Гугл Диск и так далее, надеюсь, вы понимаете, о чем я.

Как я уже сказал, я попробовал что-то подобное:

<?php

$path = realpath('/etc');

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
echo "$name\n";
}

?>

Но это просто список всех файлов рекурсивно из полного var/wwwПапка, а это не то, что я хочу.

-2

Решение

<?php
$dir = '/path/to/my/directory';
$cdir = scandir($dir);
$output="";
foreach ($cdir as $key => $value)
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$output.="<div class='dir-div'  data-key='".$dir . DIRECTORY_SEPARATOR . $value."'>$value</div>";

}
else
{
$output.="<div class='file-div'>$value</div>";
}

}

?>
<div class="media-manager">
<?php echo $output;?>
</div>

<script>
$(".dir-div").on("click",function(){
$.ajax({
url:'somephp.php',
method:'POST',
data:{data:$(this).attr("data-key")}
success:function(data){
$(".media-manager").html(data);
}
})
})
</script>

В somephp.php

<?php
$dir =$_POST['data'];
$cdir = scandir($dir);
$output="";
foreach ($cdir as $key => $value)
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$output.="<div class='dir-div'  data-key='".$dir . DIRECTORY_SEPARATOR . $value."'>$value</div>";

}
else
{
$output.="<div class='file-div'>$value</div>";
}

}
echo  $output
?>
1

Другие решения

используйте scandir () php во встроенной функции. он будет возвращать определенные файлы и dirname в этом местоположении

 $dir = '/path/to/my/directory';
$cdir = scandir($dir);
foreach ($cdir as $key => $value)
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
//your code here

}
}

//This is one more example to get files recursively.

function dirToArray($dir) {

$result = array();

$cdir = scandir($dir);
foreach ($cdir as $key => $value)
{
if (!in_array($value,array(".","..")))
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
}
else
{
$result[] = $value;
}
}
}

return $result;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector