[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рекурсия
Страницы: 1, 2
zelenuy
:) Все Уряя допилил вроде
Вот код:
<?php
function
foo($cotalog, $str = ''){
$f = scandir($cotalog);
foreach($f as $k){
if($k != '.' and $k != '..'){
if(is_dir("$cotalog\\$k")){
echo "{$str}[dir] $cotalog\\$k<br>";
foo("$cotalog\\$k", $str."     ");
}else{
echo "{$str}[file] $cotalog\\$k<br>";
}
}
}
}

foo(getcwd());
?>

Правда я так и не понял в чем была причина
Вот результат:
user posted image
linker
$files = array();
search('c:', $files);
function search($path, &$files)
{
foreach(scandir($path) as $file)
{
if ($file == '.' || $file == '..')
continue;
$file = $path . '/' . $file;
is_dir($file) ? search($file, $files) : $files[] = $file;
}
}

print_r($files);

Устал конечно, но повторюсь в уже n-ый раз

_____________
Gear Framework
Gear Framework на Github
zelenuy
Цитата (linker @ 31.01.2014 - 23:34)
$files = array();
search('c:', $files);
function search($path, &$files)
{
    foreach(scandir($path) as $file)
    {
        if ($file == '.' || $file == '..')
            continue;
        $file = $path . '/' . $file;
        is_dir($file) ? search($file, $files) : $files[] = $file;
    }
}

print_r($files);

Устал конечно, но повторюсь в уже n-ый раз

:unsure:
А ну Вы это вытаскиваете все в массив, я правильно понимаю?
У меня просто задача была прямо в функции вывести все на экран в виде дерева, но в прошлых вариантах у меня доходило до третего колена и все ступор, он не мог отличить директорию от файла, от сюда рекурсия останавливалось и все дерево не проходил. Просто если мне мой сенсей скажет
дайка мне функцию которая вывалит все мои файлы я ему раз на ка получи ка)
Ваш код пытается как мне кажется добраться до всех папок на диске С, выдал кучу ошибок
zelenuy
linker
Вы вызвали функцию раньше чем ее описали, а я то дурень думал почему я ее не знаю а описание с низу, просто на языке Си это была бы грубая ошибка)
Zzepish
linker
спасибо тебе, учитель! ПОлезный совет про ссылку! (да и пару других фишек увидел!). но у тебя не учтены временные файлы!
linker
Zzepish
Ну, а дальше можно допиливать самому, я показал общий принцип получения списка файлов smile.gif

zelenuy
В вопросе было как получить список, а не как отобразить, поэтому как бы вот.

_____________
Gear Framework
Gear Framework на Github
Invis1ble
через SPL можно обойти без рекурсии на уровне php-кода smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

linker
Invis1ble
Я понимаю, через итераторы специальные, но человек должен сначала разобраться в таких элементарных вещах на уровне базовых алгоритмов, а уж потом приобщатся к чему-то высокому.

_____________
Gear Framework
Gear Framework на Github
Invis1ble
Цитата (linker @ 1.02.2014 - 10:02)
Invis1ble
Я понимаю, через итераторы специальные, но человек должен сначала разобраться в таких элементарных вещах на уровне базовых алгоритмов, а уж потом приобщатся к чему-то высокому.

это не персонально тебе или ТС'у был комментарий, а всем, кто этого не знал smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

linker
Invis1ble
А-а-а smile.gif

_____________
Gear Framework
Gear Framework на Github
Zzepish
Цитата
Zzepish
Ну, а дальше можно допиливать самому, я показал общий принцип получения списка файлов 

да все-равно! Это много! Ибо ты очень круто оптимизировал код
Быстрый ответ:

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