IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Funkce pro vyhledávání složek

Aktivity
Avatar

Člen
Avatar
:1.7.2014 13:39

Zdravím, neznáte někdo funkci, která umí prohledat danou složku a vypsat její složky? Google mi nepomohl, tak se obracím tady.

 
Odpovědět
1.7.2014 13:39
Avatar

Člen
Avatar
Odpovídá na
:1.7.2014 13:42

První odkaz na googlu:

$handle=opendir("test");
echo "Složky:";
while (($file = readdir($handle))!==false):
if (!is_dir($file)) continue;
echo "$file\n";
endwhile;
closedir($handle);
Editováno 1.7.2014 13:43
 
Nahoru Odpovědět
1.7.2014 13:42
Avatar

Člen
Avatar
Odpovídá na
:1.7.2014 13:53

A nevíš proč my to vypíše tečku nebo dvě tečky a ne složku, když jsem si to upravil takto?:

$handle=opendir("album");
while (($file = readdir($handle))!==false):
            if (!is_dir($file)) continue;
            echo "<option value='album/$file'>/album/$file</option>";
            endwhile;
            closedir($handle);
 
Nahoru Odpovědět
1.7.2014 13:53
Avatar
alfonz
Člen
Avatar
alfonz:1.7.2014 14:05

Tohle je mnohem jednochuší.

$dir = 'foo'
foreach(scandir($dir) as $file)
{
        if(is_dir($dir . '/' . $file))
        {
                echo($file);
        }
}
Editováno 1.7.2014 14:07
Nahoru Odpovědět
1.7.2014 14:05
lmao
Avatar

Člen
Avatar
Odpovídá na alfonz
:1.7.2014 14:11

Super, díky. Jen ještě zkoumám, proč my to na začátku vyhodí dva adresáře, jeden '.' a druhý '..', nevíš čím by to mohlo být?

 
Nahoru Odpovědět
1.7.2014 14:11
Avatar
Odpovídá na
Libor Šimo (libcosenior):1.7.2014 14:16

Tak je to vždy. Myslím, že je to aktuálny a nadradený adresár.

Nahoru Odpovědět
1.7.2014 14:16
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar

Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
:1.7.2014 14:23

Jenže já to tam nemůžu nechat, budu muset něco vymyslet.

 
Nahoru Odpovědět
1.7.2014 14:23
Avatar

Člen
Avatar
Odpovídá na
:1.7.2014 14:42

výpis uložíš do proměnné a potom:

$vypis = str_replace('.', '', $slozky);
$vypis = str_replace('..', '', $vypis);

a v proměnné vypis to máš bez teček :)

 
Nahoru Odpovědět
1.7.2014 14:42
Avatar
Vojtěch Novák:1.7.2014 15:57

Trochu jsme poupravil kód.

$dir = 'foo';
$ignoreFile = array('.', '..'); //seznam ignorovaných souborů k výpisu
foreach(scandir($dir) as $file)
{
       if( is_dir($dir . '/' . $file) && !in_array($file, $ignoreFile) )
       {
               echo($file);
       }
}
Editováno 1.7.2014 15:57
 
Nahoru Odpovědět
1.7.2014 15:57
Avatar
vitkutny
Člen
Avatar
vitkutny:1.7.2014 17:53

http://php.net/…iterator.php

foreach (new DirectoryIterator(__DIR__) as $item) {
    if ($item->isDir() && !$item->isDot()) {
        print($item->getFilename() . '<br>');
    }
}
 
Nahoru Odpovědět
1.7.2014 17:53
Avatar

Člen
Avatar
:2.7.2014 11:52

Já to nakonec mám takto:

$dir = 'neco';
foreach(scandir($dir) as $file)
            {
                if(is_dir($dir . '/' . $file))
                {
                    if($file != '.' && $file != '..')
                    {
                        echo "<option value='neco/$file'>$file</option>";
                    }
                }
            }
 
Nahoru Odpovědět
2.7.2014 11:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.