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
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na
Michal Vašíček: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
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar

Člen
Avatar
Odpovídá na Michal Vašíček
: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
Denis Homolík (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
Vše je možné, dokud si to myslíte!
Avatar

Člen
Avatar
Odpovídá na Denis Homolík (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
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na
Michal Vašíček: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  -3 1.7.2014 14:42
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
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  +2 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.