Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] porządkowanie wyników dla foreach
bogdanh
post 23.05.2012, 14:46:45
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 22.04.2012

Ostrzeżenie: (0%)
-----


File manager airfilemanager pokazuje listę plików na serwerze calkowicie nieuporządkowaną.
Znalazłem pętle foreach która za to odpowiada.
Może ktoś poradzi jak ją zmienić,aby pliki były porządkowane np. po nazwie.
Poniżej cytuje:
Kod
# show files
  foreach($filetbl as $item)
  {
   $cnt++;
   $name = htmlspecialchars($item['name']);
   $preview = 'false';
   if($item['type'] == 'image' || $item['type'] == 'text') $preview = 'true';
   $total_size += $item['size'];
   $fsize = $item['size'].' B';
   if($item['size'] > 1023) $fsize = number_format($item['size'] / 1024, 1, '.', ' ').' KB';
   if($item['size'] > 1048575) $fsize = number_format($item['size'] / 1048576, 1, '.', ' ').' MB';
   $icon = 'unknown.gif';
   if(stristr($item['name'], '.doc') || stristr($item['name'], '.rtf') || stristr($item['name'], '.sxw') || stristr($item['name'], '.txt')) $icon = 'doc.gif';
    elseif(stristr($item['name'], '.gif') || stristr($item['name'], '.jpg') || stristr($item['name'], '.png') || stristr($item['name'], '.jpeg') || stristr($item['name'], '.jpe') || stristr($item['name'], '.svg')) $icon = 'image.gif';
    elseif(stristr($item['name'], '.pdf')) $icon = 'pdf.gif';
    elseif(stristr($item['name'], '.swf')) $icon = 'swf.gif';
   echo "\t\t".'<input type="checkbox" name="zaz[]" value="'.htmlspecialchars(urlencode($name)).'"><a href="#" onclick="sel(\''.htmlspecialchars(urlencode($name)).'\','.$preview.',false); return!1;" style="background-image:url(images/'.$icon.');"><span>'.htmlspecialchars($name).'</span> '.$fsize.'</a>'."\n";
  }


Ten post edytował bogdanh 23.05.2012, 14:47:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
markonix
post 23.05.2012, 15:05:35
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Poszedłbym wyżej i do wylistowania plików użyłbym np. glob, który domyślnie sortuje pliki (można dodać flagę wyłączającą sortowanie).


--------------------
Go to the top of the page
+Quote Post
bogdanh
post 23.05.2012, 18:33:30
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 22.04.2012

Ostrzeżenie: (0%)
-----


Cytat(markonix @ 23.05.2012, 16:05:35 ) *
Poszedłbym wyżej i do wylistowania plików użyłbym np. glob, który domyślnie sortuje pliki (można dodać flagę wyłączającą sortowanie).

Dziękuję. Będę próbował - może mi się poszczęści. smile.gif


Cytat(bogdanh @ 23.05.2012, 16:10:04 ) *
Dziękuję. Będę próbował - może mi się poszczęści. smile.gif

Jednak nie za bardzo daję sobie rade.
Sprobowalem posortować (wyzej) tablice $diletbl, ale tez kiszka.
asort($filetbl, SORT_LOCALE_STRING);
Za mało wiedzy. sad.gif
Go to the top of the page
+Quote Post
markonix
post 23.05.2012, 19:47:30
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Co znaczy kiszka?
Nie sortuje?
Czemu mojej propozycji nie sprawdziłeś?


--------------------
Go to the top of the page
+Quote Post
bogdanh
post 24.05.2012, 08:10:06
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 22.04.2012

Ostrzeżenie: (0%)
-----


Cytat(markonix @ 23.05.2012, 20:47:30 ) *
Co znaczy kiszka?
Nie sortuje?
Czemu mojej propozycji nie sprawdziłeś?

Sorry za "kiszkę". smile.gif
Tak - nie sortuje.
Sprawdziłem - to znaczy próbowałem sprawdzać działanie glob.
Czytałem manual, ale mam za mało wiedzy żeby prawidłowo go zastosować.
W foreach($filetbl as $item) - np. foreach(glob($filetbl, flagi) as $item)
Poległem prawdopodobnie z powodu wzorca.
Go to the top of the page
+Quote Post
markonix
post 24.05.2012, 11:08:49
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Glob zwraca tablicę, przypisz ją do zmiennej i sobie wyświetl za pomocą print_r, aby zweryfikować wylistowanie.


--------------------
Go to the top of the page
+Quote Post
bogdanh
post 26.05.2012, 19:47:31
Post #7





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 22.04.2012

Ostrzeżenie: (0%)
-----


Cytat(markonix @ 24.05.2012, 12:08:49 ) *
Glob zwraca tablicę, przypisz ją do zmiennej i sobie wyświetl za pomocą print_r, aby zweryfikować wylistowanie.

Niestety nie udało sie z glob.
Zwracał mi jedynie array().
Za mało mam wiedzy. Muszę szukać dalej.
Go to the top of the page
+Quote Post
-fafik007-
post 27.07.2012, 17:06:45
Post #8





Goście







Może to Ci pomoże:
  1. $pliki=glob("galeria/*.jpg");
  2. foreach($pliki as $wart)
  3. {
  4. $nazwa_pliku=basename($wart);
  5. echo"<img src=\"galeria/$nazwa_pliku\" />";
  6. }
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 15:45