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: PHP výpis souborů

Aktivity
Avatar
Noko
Tvůrce
Avatar
Noko:30.8.2015 12:03

Dobrý den,
potřebuji pomoct se skriptem na výpis souborů a představuju si to takto:
bude tam třeba složka fotky a když se na ni klikne tak se zobrazí její obsah takto:

obrázky
fotky

  • foto.jpg
  • foto.jpg
  • foto.jpg

soubory

chápete? já fakt nevím jak na to... V PHP začínám...

 
Odpovědět
30.8.2015 12:03
Avatar
Odpovídá na Noko
Martin Konečný (pavelco1998):30.8.2015 12:28

Ahoj,

zkus se podívat na funkci dir() - http://php.net/…tion.dir.php
případně scandir() - http://php.net/….scandir.php

způsobů bude víc, přesný script ti z hlavy nenapíšu, ale jsou tam i ukázky

Nahoru Odpovědět
30.8.2015 12:28
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Noko
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Noko:30.8.2015 12:36

to mi bohužel moc nepomůže, nejsem kamarád s angličtinou. :-)
Víc by se hodil hotový skript, už se o to pokouším týden a poříd mi to nejde napsat ani vygooglit, jak říkám jsem začátečník.
Tak kdyby se našla nějaká dobrá duše...

 
Nahoru Odpovědět
30.8.2015 12:36
Avatar
Noko
Tvůrce
Avatar
Odpovídá na Josef Kuchař - Pepa489
Noko:30.8.2015 12:49

to ne já jsem myslel že když kliknu na složku neco tak se zobrazí její obsah ale tak že se "rozbalí" a soubory v adresáři ve kterém je složka neco tam taky zůstanou takže:

index.php
clanky

  • clanek1.php
  • clanek2.php

css

  • index.css
  • clanek.css

dalsi.soubor.html

 
Nahoru Odpovědět
30.8.2015 12:49
Avatar
Odpovídá na Noko
Neaktivní uživatel:30.8.2015 13:24

A potřebuješ to programovat? Nestačí ti například http://elfinder.org ?

Editováno 30.8.2015 13:25
Nahoru Odpovědět
30.8.2015 13:24
Neaktivní uživatelský účet
Avatar
Noko
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Noko:30.8.2015 14:03

Ten elfinder je nanic, lepší bude vlastní skript.

 
Nahoru Odpovědět
30.8.2015 14:03
Avatar
katrincsak
Člen
Avatar
Odpovídá na Noko
katrincsak:30.8.2015 14:34

Jestli začínáš, tak se možná zkus zaměřit na něco primitivnějšího a i pro tebe to bude jednodušší, protože budeš chápat celý proces a posune tě to dále i v jiných dalších souvislostech.

Editováno 30.8.2015 14:34
 
Nahoru Odpovědět
30.8.2015 14:34
Avatar
katrincsak
Člen
Avatar
Odpovídá na Noko
katrincsak:30.8.2015 14:37

Tady máš odkaz na kompletní výpis fotek zadané složky včetně změny velikosti..
http://www.itnetwork.cz/…5da323216540

Tohle ti minimálně napoví jak udělat výpis fotek z dané složky ;-) Pak už stačí jen číst i všechny složky ;-)

 
Nahoru Odpovědět
30.8.2015 14:37
Avatar
ymory
Člen
Avatar
ymory:30.8.2015 15:34

myslíč něco jako toto?

<script>
            var zobrazeno = new Array();
            function zobrazSkryj(co) {
                if (zobrazeno[co] == true) {
                    document.getElementById(co).style.display = "none";
                    zobrazeno[co] = false;
                }
                else {
                    document.getElementById(co).style.display = "block";
                    zobrazeno[co] = true;
                }
                return false;        // zrušení vykonání odkazu
            }
        </script>

        <div id="menu1">
            <?php
            $dir = scandir('../testy'); // načtení souborů ze složky clanek
            foreach ($dir as $d) {
                if ($d != "." && $d != "..") {
                    if (is_dir($d)) {
                        $dir1 = scandir($d);
                        ?>
                        <a href="" onclick="return zobrazSkryj('<?php echo $d; ?>')"><?php echo $d; ?></a><br>
                        <ul id="<?php echo $d; ?>" style="display:none;">
                            <?php
                            foreach ($dir1 as $c) {
                                if ($c != "." && $c != "..") {
                                    ?> <li> <?php echo $c; ?> </li>
                                    <?php
                                }
                            }
                            ?></ul>
                            <?php
                        } else {
                            ?> <li> <?php echo $d; ?> </li><?php
                        }
                    }
                }
                ?>
        </div>
 
Nahoru Odpovědět
30.8.2015 15:34
Avatar
Noko
Tvůrce
Avatar
Odpovídá na ymory
Noko:30.8.2015 16:25

něco takového, ale aby šla otevřít i třeba šestá složka v pořadí.

 
Nahoru Odpovědět
30.8.2015 16:25
Avatar
Noko
Tvůrce
Avatar
Odpovídá na Noko
Noko:30.8.2015 17:28

A byly tam odkazy na soubory třeba když ve složce neco/ bude soubor /index.php a kliknu na něj tak mě to pošle na cokoli.cz/neco/in­dex.php

 
Nahoru Odpovědět
30.8.2015 17:28
Avatar
00
Člen
Avatar
00:20.9.2015 19:54

Použij rekurzi.

<?php
function Slozka($sl) {
echo '<ul>';
foreach (scandir($sl) as $f) {
if($f=='.'or$f=='..')continue;
echo '<li>'.htmlspecialchars($f);
if (!is_file($f))
Slozka($f);
echo '</li>';
}
echo '</ul>';

}

A spustit:

Slozka('.');

Bohuzej jen na mobilu. Ompouvam se predem za pripadnw chaby.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
20.9.2015 19:54
Avatar
00
Člen
Avatar
Odpovídá na 00
00:21.9.2015 18:33

To na konci bylo psane na rychlo.

 
Nahoru Odpovědět
21.9.2015 18:33
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Noko
TomasGlawaty:21.9.2015 20:13

Pochopil jsem z toho, že chceš pouze vypisovat obsah adresáře/adresářů, takže jakoby takový 'strom' ?
V tom případě souhlasím s 00 , koukni se po rekurzi ( nejčastěji je to funkce, která volá sama sebe )
:)

 
Nahoru Odpovědět
21.9.2015 20:13
Avatar
00
Člen
Avatar
Odpovídá na 00
00:21.9.2015 21:22

bohuzel JSEM jen na mobilu.

:-|
 
Nahoru Odpovědět
21.9.2015 21:22
Avatar
00
Člen
Avatar
Odpovídá na Noko
00:21.9.2015 21:24

Bez rekurze to by šlo také, přes cykly a zásobník. Asi.

 
Nahoru Odpovědět
21.9.2015 21:24
Avatar
00
Člen
Avatar
Odpovídá na 00
00:21.9.2015 21:36

Sám jsem to resil pouze jednou. Byly to statické stránky a měla tam nýt možnost stáhnout si určitou stránku soubor po souboru. A také to byla taková mapa sítě.

Vylepšení:

<?php
function Slozka($sl) {
echo '<ul>';
foreach (scandir($sl) as $f) {
if($f=='.'or$f=='..') continue; // tato a nadřazená složka
echo '<li>';
if (is_file($f))
echo '<a href="'.htmlspecialchars($f).'" >';
echo htmlspecialchars($f);
if (is_file($f)) echo '</a>';
if (!is_file($f))
Slozka($sl.'/'.$f);
 echo '</li>';
 }
echo '</ul>';
}

Možná jde, možmá tam je chyba.

 
Nahoru Odpovědět
21.9.2015 21:36
Avatar
00
Člen
Avatar
Odpovídá na ymory
00:21.9.2015 21:39

Šlo ny to zkrátit a (jestli jsem to četl správně) přidat možmost více úrovní.

 
Nahoru Odpovědět
21.9.2015 21:39
Avatar
00
Člen
Avatar
Odpovídá na 00
00:21.9.2015 21:46

A to rozbalování vyřešil ymory .

Mě to stačilo takhle + tagy head, body, ...

 
Nahoru Odpovědět
21.9.2015 21:46
Avatar
Noko
Tvůrce
Avatar
Odpovídá na 00
Noko:22.9.2015 7:02

Všem díky ze snahu, ale já jsem si už udělal vlastní.

 
Nahoru Odpovědět
22.9.2015 7:02
Avatar
Odpovídá na Noko
Neaktivní uživatel:30.9.2015 21:49

Mohl by jsi napsat, jakým způsobem jsi to vyřešil?

Nahoru Odpovědět
30.9.2015 21:49
Neaktivní uživatelský účet
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 22 zpráv z 22.