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
neiss
post
Post #2





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

Posty w temacie


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: 5.01.2026 - 10:29