Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyświetlanie z pliku txt
Forum PHP.pl > Forum > Gotowe rozwiązania
omen
Cześć   smile.gif

Napisałem sobie taki mały skrypcik który zapisuje informacje o odwiedzającym

  1. <?
  2. $odwiedzajacy=$user->user ();
  3. $dane=&#092;"$odwiedzajacy || \";
  4. $file=&#092;"LOG.txt\";
  5. $fp=fopen(&#092;"$file\", \"a\");
  6. flock($fp, 2);
  7. fwrite($fp, $dane.date(&#092;"d.m.Y  [G:i:s]\").\" || \". $_SERVER [ \"REMOTE_ADDR\" ] .\" ||\");
  8. flock($fp, 3);
  9. fclose($fp);
  10. ?>


oraz skrypt wyświetlający wszystko z pliku LOG.txt

  1. <?php
  2.  
  3.  $file=fopen(&#092;"LOG.txt\", \"r\");
  4.  flock($file, 1);
  5.  
  6.  while(!feof($file))
  7.  {
  8. $tytul=chop(fgets($file, 10000));
  9. $data=chop(fgets($file, 10000));
  10. $ip=chop(fgets($file, 10000));
  11.  
  12. if($tytul)
  13. {
  14.  ?>
  15.  <tr>
  16.  <td class=\"cell2\" bgColor=#222222 width=\"58\">
  17.  <span style=\"font-weight: 400\">
  18.  <font color=\"#849D40\"><? echo(&#092;"$tytul\"); ?></font></span></td>
  19.  <td class=\"cell2\" bgColor=#222222 width=\"155\">
  20.  <p style=\"text-align: left\"><span style=\"font-weight: 400\">
  21.  <font color=\"#849D40\"><? echo(&#092;"$data\"); ?></font></span></td>
  22.  <td class=\"cell2\" bgColor=#222222 width=\"111\">
  23.  <p style=\"text-align: left\"><span style=\"font-weight: 400\">
  24.  <font color=\"#849D40\"><? echo(&#092;"$ip\"); ?></font></span></td>
  25.  </tr>
  26. <?php
  27.  
  28.  }
  29.  }
  30.  flock($file, 3);
  31.  fclose($file);
  32. ?>


Wszystko ładnie działa tylko podczas wyświetlania z pliku LOG.txt
najnowsze wpisy są na końcu, a chciałbym żeby były na samym początku tabelki.

Czy ktoś mógłby mi pomoc jak to zrobić


Pozdrawiam guitar.gif
kszychu
Użyj file(), przesortuj odwrotnie tablicę i dopiero wtedy wyświetlaj.
Drugi sposób to zapisywanie najnoszych na początku: użyj rewind().
omen
Zrobiłem tak jak radziłeś i nadal nie działa sad.gif nowe wpisy do pliku są dodawane na końcu dokumentu.

  1. <?
  2. $odwiedzajacy=$user->user ();
  3. $dane=&#092;"$odwiedzajacy
  4. &#092;";
  5. $file=&#092;"include/LOG.txt\";
  6. $fp=fopen(&#092;"$file\", \"a\");
  7. rewind($fp);
  8. flock($fp, 2);
  9. fwrite($fp, $dane.date(&#092;"d.m.Y  [G:i:s]\").\"
  10. &#092;". $_SERVER [ \"REMOTE_ADDR\" ] .\"
  11. &#092;");
  12. flock($fp, 3);
  13. fclose($fp);
  14. ?>



    worriedsmiley.gif   HELP


Dopisek I: fseek($fp, 0);  też ne działa   ohmy.gif

Dopisek II:   laugh.gif

Problem rozwiązany uffffff   guitar.gif

  1. <?
  2. $plik=fopen(&#092;"LOG.txt\",\"r\"); 
  3. while(!feof($plik)) 
  4. {
  5. rewind($fp);
  6. $old=fgetc($plik); 
  7. $dane_z_old.=$old; 
  8. } 
  9. fclose($plik);
  10. $odwiedzajacy=$user->user ();
  11. $dane=&#092;"$odwiedzajacy
  12. &#092;";
  13. $file=&#092;"LOG.txt\";
  14. $fp=fopen(&#092;"$file\", \"r+\");
  15. rewind($fp);
  16. flock($fp, 2);
  17. fwrite($fp, $dane.date(&#092;"d.m.Y  [G:i:s]\").\"
  18. &#092;". $_SERVER [ \"REMOTE_ADDR\" ] .\"
  19. &#092;".$dane_z_old);
  20. flock($fp, 3);
  21. fclose($fp);
  22. ?>


thnx for help kszychu  party.gif


pozdrawiam
tiraeth
kszychowi chodziło o array_reverse" title="Zobacz w manualu PHP" target="_manual, tak?

użyj array_reverse na tablicy z wpisami (po odebraniu przez file) i odwróci Ci wszystkie wpisy, czyli będą uporządkowane chronologicznie smile.gif
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.