Diskuze: PHP výpis souborů
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 22 zpráv z 22.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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
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...
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
css
dalsi.soubor.html
A potřebuješ to programovat? Nestačí ti například http://elfinder.org ?
Ten elfinder je nanic, lepší bude vlastní skript.
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.
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
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>
něco takového, ale aby šla otevřít i třeba šestá složka v pořadí.
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/index.php
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.
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 )
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.
Šlo ny to zkrátit a (jestli jsem to četl správně) přidat možmost více úrovní.
A to rozbalování vyřešil ymory .
Mě to stačilo takhle + tagy head, body, ...
Mohl by jsi napsat, jakým způsobem jsi to vyřešil?
Zobrazeno 22 zpráv z 22.