Отображение папок и создание ссылок на эти папки - PullRequest
0 голосов
/ 02 июня 2011

Я хочу построить браузер каталогов на PHP.Я только что начал свой код, но мне нужен кто-то, чтобы помочь мне завершить или изменить его.

$dir = dirname(__FILE__); //path of the directory to read

$iterator = new RecursiveDirectoryIterator($dir);
foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) {
if (!$file->isFile()) {
echo "<a href=". $file->getPath().">" . $file->getPath() . "\</a>";
    }
}

1 Ответ

0 голосов
/ 02 июня 2011

Пока вы разрабатываете это, важно понимать, что вы имеете дело с двумя разными путями каталогов.Один путь основан на URL, другой - на основе документа.Путь / приведет вас к корню вашего сайта, где C: \ some path \ www \ также приведет вас туда.Оба они ссылаются на одно и то же местоположение, используя разные средства.

С учетом сказанного вам придется использовать URL-адреса, основанные на путях, для навигации по интерфейсу (если вы не заботитесь о раскрытии пути к документу -РИСК БЕЗОПАСНОСТИ), но код должен взять то, что вы щелкнули, и преобразовать его в пути на основе документа.Вот некоторые функции PHP, которые могут помочь.

__FILE__ - gives you the document path to the current PHP file
__DIR__ or dirname(__FILE__) - gives you the document path to the folder the current file is at    
getcwd() - gets the current working directory

Кроме того, вместо ссылки перейдите к пути к файлу, попросите ее опубликовать путь к файлу и перезагрузить страницу на основе опубликованных данных.

<form name='myform' method='post'>
    <a href='folderA' onclick="document.myform.path.value=this.getAttribute('href'); document.myform.submit(); return false;">Folder A</a>
    <a href='folderB' onclick="document.myform.path.value=this.getAttribute('href'); document.myform.submit(); return false;">Folder B</a>
    <input type='hidden' name='path' value='' />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...