Autor Zpráva
bestik_63
Profil
měl bych dotaz.
Udělal jsem si tento jednoduchý skript na vypsání obrázků z adresáře:
<?php
$adresar = "images/tabla/";
if($handle = opendir($adresar)){
    while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != "..") {    //musíme vynechat adresář "." a ".."
                echo $soubor = $adresar.$entry;
                echo "<br>";
            }
    }
}
?>
výpis na mém serveru localhost, bežící na php 5.3.29, a win 8.1 vypadá takto:
images/tabla/01_01-nahled.jpg
images/tabla/01_01.jpg
images/tabla/01_02-nahled.jpg
images/tabla/01_02.jpg
images/tabla/01_03-nahled.jpg
images/tabla/01_03.jpg
images/tabla/01_04-nahled.jpg
images/tabla/01_04.jpg
images/tabla/01_05-nahled.jpg
images/tabla/01_05.jpg
images/tabla/01_06-nahled.jpg
images/tabla/01_06.jpg
images/tabla/01_07-nahled.jpg
....
na www serveru (php 5.2.17, linux) vypadá ale takto:
images/tabla/01_07.jpg
images/tabla/01_05.jpg
images/tabla/01_04.jpg
images/tabla/01_14-nahled.jpg
images/tabla/01_12-nahled.jpg
images/tabla/01_01-nahled.jpg
images/tabla/01_14.jpg
images/tabla/01_08-nahled.jpg
images/tabla/01_02.jpg
images/tabla/01_06-nahled.jpg
images/tabla/01_09-nahled.jpg
images/tabla/01_03.jpg
images/tabla/01_05-nahled.jpg
images/tabla/01_13.jpg
images/tabla/01_03-nahled.jpg
images/tabla/01_12.jpg
images/tabla/01_10.jpg
...

spíše mi jde o důvod, ale může mi to někdo vysvětlit, proč se to na linuxu neseřadí podle abecedy?
Alphard
Profil
Stejně tak by šlo položit otázku, pro to na windows seřadí podle abecedy...
Funkce neřadí, vrací soubory tak, jak se nacházejí ve filesystému. Což ostatně říká i manuál The entries are returned in the order in which they are stored by the filesystem..
juriad
Profil
bestik_63:
V dokumentaci je napsáno: „The entries are returned in the order in which they are stored by the filesystem.“ A filesystém je může ukládat v libovolném pořadí. V čem je pořadí podle abecedy výhodné? Lepší je nějak reflektovat pořadí vytvářeni.
juriad
Profil
Jen doplním, že scandir vrací seznam souborů seřazený (ale je nepatrně výkonově náročnější než readdir).
bestik_63
Profil
nepoznal jsem zatím nikoho kdo, by měl soubory seřazené jinak než podle abecedy, proto mě to zarazilo. Nicméně se ty soubory neřadili ani podle velikosti ani podle datumu. Ale to nevadí. problém jsem vyřešil funkcí scandir($adresar).
Aspoň nějaká zkušenost do budoucna :-)
Díky moc za pomoc :-)
Joker
Profil
bestik_63:
Já soubory docela často řadím podle kdečeho :-) (resp. podle všech těch základních sloupečků: Název, typ, velikost, čas)
Nicméně funkce readdir je neřadí nijak a je to v manuálu i napsané.
Keeehi
Profil
bestik_63:
Ono tak ani nejde o to, jak si řadí uživatel ale o to, jak je má řazené systém. A ten vůbec nějaké řazení nemusí zajímat. Jemu jde především o co největší efektivitu. Takže to řazení může vycházet třeba z fyzického umístění souboru na disku, z polohy ve stromu nebo z něčeho jiného, co mu vyhovuje.

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: