[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Файловый мэнеджер на php
MarikOne
Здравствуйте, я пытаюсь написать файловый мэнеджер на php. Написал следующий код.


<html>
<?php
$start="."; // начальная директория
$tekkat=$start; //переменная с текущим каталогом
function opcat($tekkat){ //функция, открывающая и читающая каталог. Принимает в виде параметра название каталога
$pam=$tekkat; // для дальнейшего сравнения сохранил изначальный каталог в копии
if (is_dir($tekkat)) { // открываем читаем каталог
if ($hdl = opendir($tekkat)) {
while ($file = readdir($hdl)) {
if (($file!="..")&&($file!=".")) { $a[]=$file;} }
closedir($hdl);
}
}

if (sizeof($a)>0) { //сортировка
asort($a); }

foreach ($a as $k) { // каждому элементу создаем ссылку
$full=$tekkat."/".$k; // переменная целый путь состоит из тек каталога, слэша, и вложенного элемента
if (is_dir($full)==True){ // в зависимости каталог или нет
echo ("<a href=index.php?fold=$full><b>Папка $k</a><br>") ;}
else {echo ("<a href=$full>$k</a><br>");}}
// а дальше хз что
$tekkat=$full; // думал как то записать новый путь в переменную текущего каталога
//return $tekkat; // тут не используется ритэн, но так на всякий случай

}

opcat($tekkat);
//if ($tekkat!=$pam) {opcat($tekkat);} понимаю что неправильно уже, но мысль была такая, если текущий каталог стал не тем, то выполнить функцию еще раз для него.
?>
</html>


П :( олучается получить список элементов каталога, создать ссылки, на файлы - прямые, на каталоги нет, и в итоге попытка перейти на вложенный каталог безуспешна. Я не понимаю этот момент, помогите пожалуйста



Спустя 2 часа, 42 минуты, 55 секунд (30.04.2012 - 17:30) vagrand написал(а):
Ну во первых вместо readdir() и opendir() можно использовать scandir(), а во вторых при переходе в каталог тебе нужно изменять значение в переменной $start, примерно так:


$start .= '/' . $_GET['fold'];


Хотя тут конечно еще много проверок надо делать, что бы тебе в качестве фолдера не подсунули путь.

Спустя 4 часа, 48 минут, 23 секунды (30.04.2012 - 22:18) MarikOne написал(а):
Спасибо, завтра попробую!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.