Avatar

Člen
Avatar
:

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:

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
:

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):

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)
:

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):

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)
:

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:

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:

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:

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
:

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.