| Autor | Zpráva | ||
|---|---|---|---|
| Kalixt Profil * |
#1 · Zasláno: 16. 8. 2015, 21:55:26
Zdravím mám taký script pre vypísanie z adresára a potrebujem to zoradiť podla abecedy bezohladu na velkost písmen
čiže taký príklad momentalne mi to zoradí takto: Audi, BMW, Citroen, aston martin, bentley ale ja to chcem mat pekne poporadí nechcem to mat oddelené velké od malých čiže takto: aston martin, Audi, bentley, BMW, Citroen, potrebujem to zakomponovať do tohto kodu, skušal som už všeličo ale nefungovalo mi to <?php
$path = 'složka';
$dir_handle = @opendir($path) or die("Unable to open $path");
while ($file = readdir($dir_handle))
{
if($file != '.' && $file != '..')
{
$file = substr($file, 0, strpos($file, " ")-4);
echo"<span style='font-size: 12px; font-family: Tahoma; color: #00FF00;'>$file</span><br />";
}
}
closedir($dir_handle);
?> |
||
| juriad Profil |
Jedoduše třeba takto:
$path = 'složka';
$files = glob($path . '/*');
# seřadí bez ohedu na velikost písmen; pokud bude shoda, budou velká první
usort($files, function($a, $b) {
$aa = strtolower($a);
$bb = strtolower($b);
return $aa == $bb ? ($a == $b ? 0 : ($a < $b ? -1 : 1)) : ($aa < $bb ? -1 : 1);
});
echo "<ul class='fileList'>\n";
foreach ($files as $file) {
$name = basename($file);
echo "\t<li>$name</li>\n";
}
echo "</ul>\n";Proč chceš nějaké spany, když se jasně jedná o seznam souborů? Proč nastavuješ styl každému jednotlivému souboru, když to můžeš udělat jednoduše pomocí CSS? Mimochodem, příkaz glob je velice jednoduchá náhrada za opendir, readdir, closedir, pokud nepotřebuješ extrémní výkon. |
||
| lionel messi Profil |
Kalixt:
Naskladaj si jednotlivé súbory do poľa a použi funkciu sort. Napr. takto: <?php
$files = array(); //vytvoríme pole, kde budeme ukladať súbory
$path = 'složka';
if (is_dir($path)) {
$dir_handle = opendir($path);
while ($file = readdir($dir_handle))
{
if($file != '.' && $file != '..')
{
$file = substr($file, 0, strpos($file, " ")-4);
$files[] = $file; //pridáme názov súboru do poľa
}
}
closedir($dir_handle);
sort($files); //zoradíme pripravené pole podľa abecedy, pozor na to, že funkcia sort nevracia nové pole, ale modifikuje pôvodné
foreach ($files as $file) {
echo"<span style='font-size: 12px; font-family: Tahoma; color: #00FF00;'>$file</span><br />"; //vypisujeme
}
}
else {
echo "Unable to open $path";
}
?>Mierne som zmenil taktiež úvod kódu, nepáčilo sa mi použitie zavináča na potlačenie chyby ani škaredé or die()
Kompletne prekopaný kód [#2] je podstatne lepší. |
||
| Keeehi Profil |
#4 · Zasláno: 17. 8. 2015, 00:26:11
juriad
Na co vlastní funkci když existuje stejná* $path = 'složka';
$files = glob($path . '/*');
usort($files, "strcasecmp");
echo "<ul class='fileList'>\n";
foreach ($files as $file) {
$name = basename($file);
echo "\t<li>$name</li>\n";
}
echo "</ul>\n";* tedy až na tu prioritu velkých písmen shodných slov |
||
|
Časová prodleva: 11 let
|
|||
0