Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kolejność wczytywania plików z serwera, mam taki kod i chcę, żeby się zdjęcia w odpowiedniej kolejności ładowa
daniel333
post
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>";
}}}
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
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.
Go to the top of the page
+Quote Post
freemp3
post
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';
}
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:12