Autor Zpráva
Fisak
Profil
Dobrý den.
1. Mám kód kde bych rád vypisoval pouze složky. Myslel jsem že toho docílim podmínkou if(!is_dir($soubor)) ... ale bohužel mi to nějak nefunguje.
<div class="main_gallery">
<?php
$slozka = OpenDir ("./images/albums/");
while  (false !== ($soubor = ReadDir ($slozka)))
{ 
if($soubor != "." and $soubor != ".." and $soubor != "" and !is_dir($soubor)) {

echo "<div class=\"albums-gallery\"><div class=\"albums-gallery-head\">".$soubor."</div><div class=\"albums-gallery-content\">Obsah</div></div>"; 

}
}
?> 
</div>
Nevíte kde by mohla být chyba pokud bych rád vypsal jen složky bez souborů?

2. Dále bych rád vždy vzal 4 náhodné soubory vždy z každé vypisované složky a dal je do <img src="./images/albums/$slozka/$soubor" /> šlo by vždy u každého alba takhle vypsat 4 náhodné soubory z něj??

Předem děkuji za odpovědi.
Alphard
Profil
Opět typická chyba, $soubor neobsahuje cestu k souboru.
Výpis náhodných obrázků je řešen ve FAQ.
Micruss
Profil
Nastav cestu
např.
<?
$path = "./images/albums/";
$slozka = OpenDir ($path);

// while.........
while  (false !== ($soubor = ReadDir ($slozka)))
{ 
if($soubor != "." and $soubor != "..") {
// podmínka
if(!is_dir($path.$soubor)) {
// zbytek kódu

  }
} 

?>

a výpis obrázků bych řešil uložení obrázků do array(); a potom shuffle();
Bertram
Profil
<?php
$dir = new DirectoryIterator(__DIR__);
foreach ($dir as $item) {
    if(!$item->isDot()) {
      if($item->isDir()) {
          echo $item->getFilename() . "<br />";
      }
    }
}
?>
Fisak
Profil
Micruss:
Děkuji za radu ještě si dovolím opravit: if(is_dir($path.$soubor)) {...


Ještě dotaz... Můj kod vypadá teďkonc takto:
<?php
echo "<div class=\"main_gallery\">";


$path = "./images/albums/";
$slozka = OpenDir ($path);
 
// while.........
while  (false !== ($soubor = ReadDir ($slozka)))
{ 
if($soubor != "." and $soubor != "..") {
// podmínka
if(is_dir($path.$soubor)) {

echo "<div class=\"albums-gallery\"><div class=\"albums-gallery-head\">".$soubor."</div><div class=\"albums-gallery-content\">";

$path_albs = "./images/albums/".$soubor."/";
$slozka_albs = OpenDir ($path_albs);

$i = 1; 
// while.........
while  (false !== ($soubor_albs = ReadDir ($slozka_albs)))
{ 
$i++;
if($soubor_albs != "." and $soubor_albs != "..") {

// podmínka
if(!is_dir($path_albs.$soubor_albs) and $i <= 4) {

echo "<img src=\"".$path_albs.$soubor_albs."\" width=\"75px\" height=\"75px\"/>";

}

}
}

echo "</div></div>"; 

}
}
}
echo "</div>";
a rád bych omezil výpis těch obrázku na 4. Teď to mám dělaný tou proměnou $i. Bohužel to nefunguje. Dokázal by mi někdo poradit jak to opravit ?? Předem děkujiz a všechny odpovědi.
Tori
Profil
$i = 1 musí být ještě před začátkem prvního cyklu. Tohle: and $i <= 4 (ř.28) bych vyhodila a na začátek vnořeného cyklu (třeba místo ř.24) dala if ($i > 4) break 2;. Počet obrázků k zobrazení bych asi kvůli přehlednosti dala do proměnné, přijde mi to lepší než magické číslo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0