Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Opendir
Forum PHP.pl > Forum > PHP
hugo1111
Witam. Jestem tutaj nowy. Uczę się php ;P... Mam taki mały problem otóż.

mam kod. Wyswietlanie newsów z pliku. TZN otwieramy plik z katalogu i wyczytujemy zawartość. Wyświetlamy maksymalnie 10 newsow na stronie.

Teraz chcialem zrobic tak... W folderze "newsy" są pliki: 9999994.txt 9999993.txt 9999992.txt
I chcialbym aby poprzez "while" sprawdzal te pliki w danej kolejnosci tzn. Od najmniejszej do najwiekszej liczby przed .txt
Czyli aby najpierw otworzyl plik 9999992.txt dopiero potem 99999993.txt winksmiley.jpg.

Tutaj macie kod wyswietlania newsow.

  1. <?
  2.  
  3. $default_dir = "./newsy/";
  4. if(!($dp = opendir($default_dir))) die("Nie mogę otworzyć $default_dir.");
  5. $od=strip_tags($od);
  6. $i=0;
  7. $ile=0;
  8. $do=10;
  9. $do2=0;
  10. if($od==""){$od=0;}
  11. if($_GET['news']==""){
  12. echo"<table width=400 border=1>";
  13. while($file = readdir($dp)){
  14.  
  15. if($file != '.' && $file != '..'){
  16. $b=explode(".", $file);
  17. if($file=="index.php" or $file=="index.htm" or $file=="index.html" or $file=="idnews.txt"){}else{
  18. $ile++;
  19. if(file_exists("newsy/$file")){
  20. $fp=fopen("newsy/$file","r");
  21. $strona=fgets($fp);
  22. fclose($fp);
  23. }
  24. $strona = explode("[xxx]", $strona);
  25. if($i==0){if($od<$ile and $do>$do2){$do2++; echo'
  26.  
  27. <table border="0"><tr><td>Tytuł: '.$strona[0].'</td></tr><tr><td>Treść: <br>'.$strona[1].'
  28. </td></tr></table><hr>
  29. '; $i++;}}else{
  30. if($i==4){if($od<$ile-1 and $do>$do2){$do2++; echo'
  31. <table border="0"><tr><td>Tytuł: '.$strona[0].'</td></tr><tr><td>Treść: <br>'.$strona[1].'
  32. </td></tr></table><hr>
  33. '; $i=0;}}else{
  34. if($od<$ile-1 and $do>$do2){$do2++; echo'
  35.  
  36. <table border="0"><tr><td>Tytuł: '.$strona[0].'</td></tr><tr><td>Treść: <br>'.$strona[1].'
  37. </td></tr></table><hr>
  38. '; $i++;}}}}}}
  39.  
  40.  
  41.  
  42. closedir($dp);
  43.  
  44.  
  45.  
  46.  
  47.  
  48. $wstecz="";
  49. $dalej="";
  50. $miedzy="";
  51. $d1=$od-10;
  52. $d2=$od+10;
  53. if($od<=9){$wstecz="<font color='gray'><- Wstecz</font>";}else{$wstecz="<a href='?od=$d1'><- Wstecz</a>";}
  54. if($d2>=$ile){$dalej="<font color='gray'>Dalej -></font>";}else{$dalej="<a href='?od=$d2'>Dalej -></a>";}
  55. echo"</table><br>$wstecz | $dalej<br>Newsów: $ile | Pokaż: $od-$d2";
  56. }else{
  57. if(file_exists($default_dir.$_GET['news'])==true){
  58. echo"<br /><a href=# onclick='history.back()'>Powrót</a><img src='".$default_dir.$_GET['news']."' border=0>";}else{echo"Taki obrazek nie istnieje!<br /><a href=# onclick='history.back()'>Powrót</a>";}}
  59.  
  60. ?>
Blame
Pobierasz sobie zawartość folderu do tablicy, sortujesz według tych numerków i wyświetlasz.
hugo1111
ok ;P....
Zrobilem to tak ;P

  1. <?
  2. $ilenews = 3;
  3. $start = $_GET['p']*$ilenews;
  4. $end = ($_GET['p']*$ilenews)+$ilenews;
  5. function GetNews($dir,$start,$end)
  6. {
  7. // Pobieramy strukture katalogu
  8. $ilenews = 3;
  9. if (is_dir($dir)) {
  10. if ($dh = opendir($dir)) {
  11. while (($file = readdir($dh)) !== false) {
  12. if(($file!='.')and($file!='..')) // Pomijamy katalogi glowne
  13. {
  14. $dot = explode('.',$file); $dot = $dot[1];
  15. if($dot=='txt')
  16. {
  17. $newsy[] = $file; // Wpisujemy dane do tablicy
  18. }
  19. }
  20. }
  21. closedir($dh);
  22. }
  23. }
  24.  
  25. rsort($newsy); // Sortujemy tablice
  26.  
  27. $max = count($newsy)-1; // Pobieramy wielkosc tablicy
  28. $stron = round($max/$ilenews)-1;
  29.  
  30. if($end>=$max) { $end = $max; };
  31. for ($i = $start; $i <= $end; $i++) {
  32. $html = file_get_contents($dir.'/'.$newsy[$i]);
  33. // TUTAJ WYSWIETLAMY
  34.  
  35. echo $html."<br>";
  36.  
  37. // KONIEC WYSWIETLANIA
  38. }
  39. return $stron;
  40. }
  41. $default_dir = "./newsy/";
  42. if(!($dp = opendir($default_dir))) die("Nie mogę otworzyć $default_dir.");
  43.  
  44. if($_GET['news']==""){
  45. if($start == null){
  46. $start = 0;
  47. $end = $ilenews;
  48. }
  49.  
  50. $stron = GetNews($default_dir,$start,$end);
  51.  
  52. for ($i = 0; $i <= $stron; $i++) {
  53.  
  54. echo "<a href='index.php?p=".$i."' >".($i+1)."</a>";
  55. }
  56. }
  57. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.