Dobrý den, prosím o radu. Mám na svých stránkách obrázkové katalogy vytvořené následujícím způsobem. Načtou se všechny náhledy z adresáře, a každý odkazuje na stejnojmenný soubor v jiné složce:
$slozka = dir("nahledy");
while($soubor=$slozka->read()) {
if ($soubor=="." || $soubor=="..") continue;
echo "<div class=\"katalog\"><a href=\"obrazky/$soubor\">
<img src=\"nahledy/$soubor\" alt=\"$soubor\" />
</a></div>";
}
$slozka->close();
Názvy souborů obsahují čísla, podle kterých jsem očekávala řazení obrázků na stránce (na testovacím prostřecí v mém počítači to tak funguje). Na Webzdarma se však obrázky řadí podle jiného kritéria. Poradíte mi, podle kterého, a jak mohu pořadí obrázků ovlivnit (kromě vypisování nebo generování do stránky)?
názvy obrázků se místo výpisu při načítání uloží do pole, pole se pak setřídí a teprve setříděné pole se vypíše
něco jako:
<?php
$slozka = dir("nahledy");
while($soubor=$slozka->read()) {
if ($soubor=="." || $soubor=="..") continue;
$pole[]=$soubor;
}
$slozka->close();
sort($pole);
while (list ($key, $soubor) = each ($pole)) {
echo "<div class=\"katalog\"><a href=\"obrazky/$soubor\">
<img src=\"nahledy/$soubor\" alt=\"$soubor\" />
</a></div>";
}
?>
nebo
<?php
$slozka = dir("nahledy");
while($pole[]=$slozka->read()) {}
$slozka->close();
sort($pole);
while (list ($key, $soubor) = each ($pole)) {
if ($soubor=="." || $soubor=="..") continue;
echo "<div class=\"katalog\"><a href=\"obrazky/$soubor\">
<img src=\"nahledy/$soubor\" alt=\"$soubor\" />
</a></div>";
}
?>
Děkuji, funguje to. Jen se zobrazovaly dva prázdné <div>y, ale to jsem ošetřila.
<HTML>Pozor na 2 drobnosti:
<code><span style="color: #000000">
<span style="color: #0000BB"><?php
</span><span style="color: #0000BB">$pole </span><span style="color: #007700">= array(); </span><span style="color: #FF8000">// pozor na to, nezapominat na inicializaci
</span><span style="color: #0000BB">$slozka </span><span style="color: #007700">= </span><span style="color: #0000BB">dir</span><span style="color: #007700">(</span><span style="color: #DD0000">"."</span><span style="color: #007700">);
while (</span><span style="color: #0000BB">$soubor</span><span style="color: #007700">=</span><span style="color: #0000BB">$slozka</span><span style="color: #007700">-></span><span style="color: #0000BB">read</span><span style="color: #007700">())
if (</span><span style="color: #0000BB">is_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$slozka</span><span style="color: #007700">-></span><span style="color: #0000BB">path</span><span style="color: #007700">.</span><span style="color: #DD0000">'/'</span><span style="color: #007700">.</span><span style="color: #0000BB">$soubor</span><span style="color: #007700">))
</span><span style="color: #0000BB">$pole</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$soubor</span><span style="color: #007700">; </span><span style="color: #FF8000">// vypustit '.' a '..' nestaci
</span><span style="color: #0000BB">sort</span><span style="color: #007700">(</span><span style="color: #0000BB">$pole</span><span style="color: #007700">);
</span>
foreach (</span><span style="color: #0000BB">$pole </span><span style="color: #007700">as </span><span style="color: #0000BB">$soubor</span><span style="color: #007700">)
echo </span><span style="color: #DD0000">'<div class="katalog">'</span><span style="color: #007700">.</span><span style="color: #0000BB">$soubor</span><span style="color: #007700">.</span><span style="color: #DD0000">'<a href="obrazky/'</span><span style="color: #007700">.</span><span style="color: #0000BB">$soubor</span><span style="color: #007700">.</span><span style="color: #DD0000">'"> <img src="nahledy/'</span><span style="color: #007700">.</span><span style="color: #0000BB">$soubor</span><span style="color: #007700">.</span><span style="color: #DD0000">'" alt="'</span><span style="color: #007700">.</span><span style="color: #0000BB">$soubor</span><span style="color: #007700">.</span><span style="color: #DD0000">'" /></a></div>'</span><span style="color: #007700">;
</span><span style="color: #FF8000">// s escapovanim znaku se v tom spatne orientuje
</span><span style="color: #0000BB">?>
</span>
</span>
</code></HTML>