Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak Zmienić?
Kaczor.net
post 21.08.2004, 21:27:07
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2003

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


Jak zmienić ten sposób zapisu do pliku:

  1. <?
  2.  
  3. $file=fopen(&#092;"dane.txt\", \"a\");
  4. fwrite($file, &#092;"$nick||$mail||$www||$data||$ip||$wpis||n\");
  5. fclose($file);
  6.  
  7. ?>


tak by dane były dapisywane na początek pliku. Męcze się z tym juz od jakiegos czasu i nic sad.gif Pomocy!

Ten post edytował Kaczor.net 21.08.2004, 21:58:17
Go to the top of the page
+Quote Post
FiDO
post 21.08.2004, 21:40:53
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Generalnie dopisywanie na poczatek pliku (technicznie mozliwe, ale niewydajne) jest bardzo zlym pomyslem, powiedz co chcesz przez to osiagnac, a napewno znajdzie sie na to lepszy sposob.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
hwao
post 21.08.2004, 21:54:42
Post #3


Developer


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




http://pl.php.net/fopen
Cytat(manual)
'a'  Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.
'r'  Open for reading only; place the file pointer at the beginning of the file.
'w'  Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

ph34r.gif

Ten post edytował hwao 21.08.2004, 21:55:15
Go to the top of the page
+Quote Post
Kaczor.net
post 21.08.2004, 21:56:59
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2003

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


Po to by nowe wpisy były wyświetlane od najnowszego do najstarszego. W pliku pokaz.php o takiej struktórze:

  1. <?
  2.  
  3. $file_name='dane.txt';
  4. $file_data=file($file_name);
  5.  
  6. for($i=0; $i<count($file_data); $i++){$file=explode('||',$file_data[$i]);
  7.  
  8. echo'<br>
  9. <center><table border=\"1\" bordercolor=\"SILVER\" cellpadding=\"2\" cellspacing=\"2\">
  10. <tr>
  11. <td width=\"60\" align=\"right\"><font class=\"Stopka\">Nick:</font></td>
  12. <td width=\"200\"><center><a href=\"mailto:'.$file['1'].'\">'.$file['0'].'</a></center></td>
  13. <td width=\"60\">&nbsp;</td>
  14. </tr>
  15. <tr>
  16. <td width=\"60\" align=\"right\"><font class=\"Stopka\">WWW:</font></td>
  17. <td width=\"200\"><center><a href=\"http://'.$file['2'].'\" target=\"_blank\">http://'.$file['2'].'</a></center></td>
  18. <td width=\"60\">&nbsp;</td>
  19. </tr>
  20. <tr>
  21. <td width=\"60\" align=\"right\"><font class=\"Stopka\">Data:</font></td>
  22. <td width=\"200\"><center>'.$file['3'].'</center></td>
  23. <td width=\"60\">&nbsp;</td>
  24. </tr>
  25. <tr>
  26. <td width=\"60\" align=\"right\"><font class=\"Stopka\">IP:</font></td>
  27. <td width=\"200\"><center>'.$file['4'].'</center></td>
  28. <td width=\"60\">&nbsp;</td>
  29. </tr>
  30. <tr>
  31. <td colspan=\"3\" width=\"320\"><br>'.$file['5'].'<br><br></td>
  32. </tr>
  33. </table></center>
  34. <br>
  35.  
  36. ';}
  37.  
  38. ?>


zamienienie funkcji

  1. <?php
  2. for($i=0; $i<count($file_data); $i++)
  3. ?>


na

  1. <?php
  2. for($i=count($file_data); $i<0; $i--)
  3. ?>


nie przyniosło porządanego efektu, wieć jestem zmuszony do dopisywania na początek pliku.

Ten post edytował Kaczor.net 21.08.2004, 21:57:57
Go to the top of the page
+Quote Post
FiDO
post 22.08.2004, 01:08:51
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Wstaw
  1. <?php
  2. $file_data = array_reverse($file_data);
  3. ?>

za linijka pobierajaca dane za pomoca funkcji file()

Swoja droga to (troche zmieniona wersja tego co podales)
  1. <?php
  2. for($i = count($file_data) - 1; $i >= 0; $i--)
  3. ?>

tez powinno dzialac.

Jak widzisz sa conajmniej 2 inne prostsze sposoby na to co chciales osiagnac.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Kaczor.net
post 22.08.2004, 08:20:13
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2003

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


Działa laugh.gif Dzięki za pomoc! Wykorzystałem pierwszą opcje FiDo.
Go to the top of the page
+Quote Post
Parti
post 22.08.2004, 19:51:31
Post #7





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


Cytat(Kaczor.net @ 2004-08-21 22:27:07)
tak by dane były dapisywane na początek pliku. Męcze się z tym juz od jakiegos czasu i nic sad.gif Pomocy!

Żeby jednak odpowiedzieć na Twoje pytanie, podam sposób. Najczęściej tworzy się nowy tymczasowy plik, do którego wpisujesz to co chcesz mieć na początku pliku. Następnie przepisujesz wszystko z oryginalnego pliku. Kasujesz oryginalny plik i zmieniasz nazwe pliku tymczasowego.

W sytuacjach kiedy dopisywanie na początku pliku jest konieczne i nie da się tego obejść w jakiś łatwy sposób, warto tworzyć bufor. Tzn. jeśli dopisujemy coś na początek, to robimy od razu miejsce na następne 100 linijek i sukcesywnie je zapełniamy. Dopiero jak wykorzystamy całe miejsce z bufora korzystamy z procedury opisanej wyżej (robiąc oczywiście miejsce na następne 100 linijek) itd.
Go to the top of the page
+Quote Post
Kaczor.net
post 22.08.2004, 23:26:42
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2003

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


Mam nowe pytanie.
Wyzej podałem kod pliku pokaz.php i chciałbym sie dowiedzieć co mam wstawić by przy każdym wpisie był pokazany jego numerek?
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: 25.06.2025 - 20:53