![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 18.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Mam kod, który pobiera mi wszystkie obrazki z folderów umieszczonych na serwerze, a potem je wyświetla na stronie. Sęk w tym, że kolejność wyświetlania ich na localhoście i na serwerze jest inna. Więc mam dwie opcje: 1) Dowiedzieć się w jaki sposób pliki są pobierane z serwera (na tą chwilę wydaje mi się, że jest to przypadkowość, bo nie jest to ani data modyfikacji, ani nazwa pliku). 2) Przerobić kod tak, żeby dobrze wyświetlał pliki niezależnie od wszystkiego. Kod <?php
if ($handle = opendir('./zdjecia')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file !="min") { $plik=$file; $i = explode('.', $plik); $maly = reset($i); echo "<a rel='example_group' href='./zdjecia/".$plik."' title=''><img class='miniaturka' style='border: 1px solid #262626;' alt='' src='./zdjecia/min/".$plik."' /></a>"; }}} ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Niemal zawsze w przypadku braku jawnie zdefiniowanego sortowania należy przyjąć, że dane zostaną odczytane/przesłane/przetworzone losowo. System plików nie jest tutaj wyjątkiem. Zapisz sobie w jakiejś bazie danych (może to być zwykły plik) kolejność w jakiej pliki mają być wyświetlane i wyświetlaj na jej podstawie.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
To zależy jak chcesz sortować, jeśli np po nazwie pliku, dacie dodania lub jego rozmiarze można to zrobić w kodzie.
Jako klucz tablicy files podajesz nazwę pliku lub inny parametr po którym chcesz sortować i jako wartość przypisujesz kod który ma się wyświetlić. Po wyjściu z pętli sortujesz tablicę według kluczy funkcją ksort oraz przy pomocy funkcji implode sklejasz wartości i wyświetlasz. Kod <?php $files = array(); if ($handle = opendir('./zdjecia')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file !="min") { $plik=$file; $i = explode('.', $plik); $maly = reset($i); $files[$plik] = "<a rel='example_group' href='./zdjecia/".$plik."' title=''><img class='miniaturka' style='border: 1px solid #262626;' alt='' src='./zdjecia/min/".$plik."' /></a>"; }}} ksort($files); echo implode('', $files); ?> Pamiętać należy, aby nie nadpisać wartości gdyby trafił się identyczny klucz (np. gdybyś sortował według daty dodania). Zabezpieczenie można zrobić w ten sposób: Kod if(array_key_exists($key, $files))
{ $i = 0; while(++$i) { $key_buf = $key . $i; if(!array_key_exists($key_buf, $files)) { $files[$key_buf] = 'wartosc'; break; } } } else { $files[$key] = 'wartosc'; } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:12 |