Autor Zpráva
honzaa
Profil *
Zdravím, mám následující script, který vypisuje seznam složek v určitém adresáři. Pokud nemají složky v názvu háčky, čárky, velká písmena a nebo mezeru vše se abecedně řadí. Ale pokud do názvu složky přidám háček, čárku nebo mezeru daná složka se přiřadí až na konec seznamu. Nevíte někdo co s tím. Předem děkuji za jakoukoliv odpověď.

<?php

$dir = 'dir';
if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "style.css" && $file != "index.php") {
            if (is_dir("$dir/$file"))
                $folder_array[] = strtolower($file);
            else
                $file_array[] = strtolower($file);
        }
    }
    closedir($handle);
}

if ($folder_array) {
    sort ($folder_array);
    foreach ($folder_array as $file) {
        echo "<a href='$dir/$file'>$file</a><br>";
    }
}

?>
Keeehi
Profil
Použij jinou funkci na řazení. (natcasesort)
http://cz.php.net/manual/en/function.natcasesort.php
honzaa
Profil *
Děkuji za rychlou odpověď. Šlo by, prosím nějak přesněji specifikovat změnu v kódu. díky
Keeehi
Profil
Před písmenka "sort" v tvém kódu přidáš písmenka "natcase", tudíž z toho vznikne "natcasesort".
Ještě je něco nejasného?
honzaa
Profil *
Opět děkuji, to pomohlo, ale jen z části. Na ty velká písmena to nemá žádný vliv. Jsou stále malá. Byl by, prosím, ještě nějaký nápad?
Keeehi
Profil
honzaa:
Kdyby jsi si ten kód napsal sám, tak by jsi věděl co dělá. Mám chuť ti neporadit, neboť tvoje práce je vlastně nulová. Takže, aby jsi se taky zapojil, nevyřeším to za tebe, ale nasměruji tě. Řešení spočívá v odebrání dvacetičtyř znaků (2x12). To zmenšování dělá funkce jedna funkce. Jaká? to si právě zjistíš. Začni zde. Pokud si přečteš prvních pět odkazů, tak na tu funkci určitě přijdeš. Není ve všech odkazech, ale je minimálně ve dvou zmíněná.
honzaa
Profil *
Odpoved jsem nasel v odkaze cislo 3. dekuji H.

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