Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Sortowanie wyswietlonych plików znajdujacych sie w katalogu
neiss
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.09.2006
Skąd: Działdowo

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


Mam skrypcik wyswietlajacy zawartosc katalogu lecz chciałbym aby jeszcze była opcja sortowania tego co zostaje wyświetlone np. wg daty albo wg rozszerzeń lub nazwy pliku dacie rade troche go zmodyfikowac?
  1. <?php
  2. function ICO($dir_name)
  3. { $liczba=0;
  4. $liczba2=0;
  5. if ($dp = opendir($dir_name))
  6. { while (false !== ($plik = readdir($dp)))
  7. if (!is_dir($dir_name.'/'.$plik.'/'))
  8. { $poz=strrpos($plik,'.');
  9. if ($poz!==false)
  10. { if(substr($plik,$poz+1)!='php')
  11. { echo '<a href="'.$dir_name.'/'.$plik.'" target=_blank>';
  12. switch (substr($plik,$poz+1))
  13. { case 'doc': echo '<img border="0" src="gfx/doc.png"> '; break;
  14. ...
  15. case 'exe': echo '<img border="0" src="gfx/exe.png"> '; break;
  16. default: echo '<img border="0" src="gfx/no.png"> ';
  17. }
  18. $dl=20;
  19. if (strpos($plik,'.')<$dl) $dl=strpos($plik,'.');
  20. echo substr($plik,0,$dl).'</a> - '.date ('d-m-y H:i', filemtime($dir_name.'/'.$plik)).
  21. '<br>';
  22. }
  23. if (substr($plik,$poz+1)!='php')
  24. $liczba=$liczba+1;
  25. if ($liczba==20)
  26. { $liczba=0;
  27. $liczba2=$liczba2+1;
  28. echo '</td><td valign="top">';
  29. }
  30. if ($liczba2==20)
  31. { $liczba2=0;
  32. echo '</td></tr><tr><td valign="top">';
  33. }
  34. }
  35. }
  36. closedir($dp);
  37. }
  38. else
  39. return false;
  40. }
  41. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Odzielasz prezentacje od logiki.

Zbierasz zawartosc folderu do tablicy, nastepnie uzywasz array_multisort.
Go to the top of the page
+Quote Post
neiss
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.09.2006
Skąd: Działdowo

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


Dzieki za podpowiedz dla ludzi majacych ten sam problem zamieszczam zmodyfikowany kod (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
THX hwao
  1. <?php
  2. function ICO($dir_name)
  3. {
  4. $liczba=0;
  5. $liczba2=0;
  6. $liczba_el=0;
  7. if ($dp = opendir($dir_name))
  8. {
  9. while (false !== ($plik = readdir($dp)))
  10. if (!is_dir($dir_name.'/'.$plik.'/'))
  11. {
  12. $poz=strrpos($plik,'.');
  13. if ($poz!==false)
  14. {
  15. if(substr($plik,$poz+1)!='php')
  16. {
  17. $tab[$liczba_el]=$plik;
  18. $liczba_el+=1;
  19. }
  20. }
  21. }
  22. closedir($dp);
  23. }
  24. else return false;
  25. $tab1 = array_map('strtolower', $tab);
  26. array_multisort($tab1, SORT_ASC, SORT_STRING, $tab);
  27. $i=0;
  28. while ($i<$liczba_el)
  29. {
  30. $plik=$tab[$i];
  31. $poz=strrpos($plik,'.');
  32. echo '<a href="'.$dir_name.'/'.$plik.'" target=_blank>';
  33. switch (substr($plik,$poz+1))
  34. {
  35. case 'doc': echo '<img border="0" src="gfx/doc.png"> '; break;
  36.  ...
  37. case 'exe': echo '<img border="0" src="gfx/exe.png"> '; break;
  38. default: echo '<img border="0" src="gfx/no.png"> ';
  39. }
  40. $dl=20;
  41. if ($poz<$dl) $dl=$poz;
  42. echo substr($plik,0,$dl).'</a> - '.date ('d-m-y H:i', filemtime($dir_name.'/'.$plik)).'<br>';
  43. $liczba+=1;
  44. if ($liczba==20)
  45. {
  46. $liczba=0;
  47. $liczba2+=1;
  48. echo '</td><td valign="top">';
  49. }
  50. if ($liczba2==20)
  51. {
  52. $liczba2=0;
  53. echo '</td></tr><tr><td valign="top">';
  54. }
  55. $i+=1;
  56. }
  57. }
  58. ?>

Jest to gotowa finkcja ktora wyswietla zawartosc katalogu i przy przekroczeniu liczby plikow = 20 dzieli na tabelki (trzeba umiescic zamieszczone wyniki w tabelce)
<?php
echo '<table width="504" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td background="gfx/tekst_top.gif" valign="top" height="20">
      <b>DOWNLOAD</b>
</td>
</tr>
<tr>
<td background="gfx/tekst_tlo.gif" valign="top" class="tekst">
Nazwa - data modyfikacji
<div align="left">';
ICO("download");

echo ' </div>
</td>
</tr>
<tr>
<td height="2" valign="top">
<img src="gfx/tekst_bottom.gif" width="508" height="1">
</td>
</tr>
</table>';
?>
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: 15.09.2025 - 15:41